У меня есть некоторые данные, которые мне нужно форматировать, заглавными буквами каждой буквы, а нижнее - остальное. Я использую следующие:Заглавная буква Первая буква, в нижнем регистре остальные, за исключением
function toTitleCase(str){
return str.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});
}
Это работает, но мне нужно добавить исключения к этому, все значения, находящиеся в массиве: [США, США, 7UP, PC, Slimfast ...]
Эти значения иногда являются верхними, иногда более низкими, иногда смешанными и не нуждаются в изменении. Есть идеи?
Что об использовании белого списка массива? Если 'txt' существует в массиве, возвращайтесь, не делая ничего. – Jon
@ h2ooooooo: Я должен был написать 'txt' вместо' str'. Исправлено. – Jon
Вы можете избежать использования 'charAt' и' substr': 's.replace (/ (\ w) (\ S *)/g, function (m, a, b) {return a.toUpperCase() + b .toLowerCase();}); '. – leaf