如何将每个单词的首字母大写,如2个字的城市?

我的JS很好,当城市有一个字:

  • 芝加哥==芝加哥

但是,当它

  • 圣地亚哥==>圣地亚哥

我如何使它成为圣地亚哥?

function convert_case() { document.profile_form.city.value = document.profile_form.city.value.substr(0,1).toUpperCase() + document.profile_form.city.value.substr(1).toLowerCase(); } 

这里有一个很好的答案:

 function toTitleCase(str) { return str.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();}); } 

你可以使用CSS:

 p.capitalize {text-transform:capitalize;} 
 function convert_case(str) { var lower = str.toLowerCase(); return lower.replace(/(^| )(\w)/g, function(x) { return x.toUpperCase(); }); } 

JavaScriptfunction:

 String.prototype.capitalize = function(){ return this.replace( /(^|\s)([az])/g , function(m,p1,p2){ return p1+p2.toUpperCase(); } ); }; 

要使用这个function:

 capitalizedString = someString.toLowerCase().capitalize(); 

此外,这将工作在多个string。

为了确保转换后的城市名称被注入到数据库中,小写和首字母大写,那么在将其发送到服务器端之前,您需要使用JavaScript。 CSS简单的样式,但实际的数据将保持预定义。 看看这个jsfiddle的例子,并比较警报消息与风格的输出。