我的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(); }
你可以使用CSS:
p.capitalize {text-transform:capitalize;}
根据Kamal Reddy的评论:
document.getElementById("myP").style.textTransform = "capitalize";
有一个很好的答案在这里:
function toTitleCase(str) { return str.replace(/\w\S*/g, function(txt){ return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); }); }
或在ES6中:
var text = "foo bar loo zoo moo"; text = text.toLowerCase() .split(' ') .map((s) => s.charAt(0).toUpperCase() + s.substring(1)) .join(' ');
JavaScript函数:
String.prototype.capitalize = function(){ return this.replace( /(^|\s)([a-z])/g , function(m,p1,p2){ return p1+p2.toUpperCase(); } ); };
使用此函数:
capitalizedString = someString.toLowerCase().capitalize();
此外,这也适用于多个单词的字符串。
为了确保转换后的City名称被注入到数据库中,小写且首字母大写,那么在将其发送到服务器端之前需要使用JavaScript。CSS只是简单地设置样式,但实际的数据将保持预样式。看一下这个jsfiddle例子,比较一下警告消息和样式输出。
function convertCase(str) { var lower = String(str).toLowerCase(); return lower.replace(/(^| )(\w)/g, function(x) { return x.toUpperCase(); }); }