Что лучший подход должен использовать для своей выгоды слова в строке?
Джон Ресиг (известный jQuery) портировал Perl-скрипт, написанный Джоном Грубером, на JavaScript. Этот сценарий использует более грамотный способ написания заглавных букв, в нем не используются маленькие слова, такие как, например, «из» и «и».
Вы можете найти это здесь: Использование заглавных букв в JavaScript
Использование JavaScript и html
String.prototype.capitalize = function() { return this.replace(/(^|\s)([a-z])/g, function(m, p1, p2) { return p1 + p2. toUpperCase(); }); };
В принципе, вы можете сделать string.capitalize()
и он будет писать каждую 1-ю букву каждого слова.
Источник: http://www.mediacollege.com/internet/javascript/text/case-capitalize.html
Поскольку все дали вам ответ на JavaScript, который вы просили, я добавлю, что свойство CSS text-transform: capitalize
будет делать именно это.
Я понимаю, что это может быть не то, о чем вы просите - вы не указали нам контекст, в котором вы это делаете - но если это просто для презентации, я бы определенно выбрал альтернативу CSS.
http://www.mediacollege.com/internet/javascript/text/case-capitalize.html - один из многих ответов.
Google может быть всем, что вам нужно для решения подобных задач.
Наивный подход заключается в том, чтобы разделить строку пробелами, прописать первую букву каждого элемента полученного массива и соединить их вместе. При этом существующая капитализация остается неизменной (например, HTML остается HTML и не превращается в нечто глупое вроде Html). Если вы не хотите такого эффекта, перед разделением переведите всю строку в нижний регистр.
function capitalize(s){
return s.toLowerCase().replace( /\b./g, function(a){ return a.toUpperCase(); } );
};
capitalize('this IS THE wOrst string eVeR');
output: "This Is The Worst String Ever"
Похоже, это решение заменяет мое: https://stackoverflow.com/a/7592235/104380