如何将每个单词的首字母大写,例如2单词的城市?[重复]

2020/10/09 19:41 · javascript ·  · 0评论

当这个城市只有一个字时,我的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();
    });
}

或在ES6中:

var text = "foo bar loo zoo moo";
text = text.toLowerCase()
    .split(' ')
    .map((s) => s.charAt(0).toUpperCase() + s.substring(1))
    .join(' ');

您可以使用CSS:

p.capitalize {text-transform:capitalize;}

更新(JS解决方案):

基于Kamal Reddy的评论:

document.getElementById("myP").style.textTransform = "capitalize";
function convertCase(str) {
  var lower = String(str).toLowerCase();
  return lower.replace(/(^| )(\w)/g, function(x) {
    return x.toUpperCase();
  });
}

JavaScript函数:

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

要使用此功能:

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

同样,这将适用于多个单词的字符串。

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

本文地址:http://javascript.askforanswer.com/ruhejiangmeigedancideshouzimudaxieliru2dancidechengshizhongfu.html
文章标签:
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!