Javascript 将所有单词中的第一个字符替换为大写[更简单的方式]

Javascript 将所有单词中的第一个字符替换为大写[更简单的方式],javascript,Javascript,我让它工作起来了,所有的变体都按应该的方式显示在圣安娜,但我想知道,有没有更简单的方法,因为它看起来很杂乱 String.prototype.capitalize = function(){ var sa = this.replace(/-/g,' '); var saa = sa.toLowerCase(); var sb = saa.replace( /(^|\s)([a-z])/g , function(m,p1,p2){ return p1+p2.toUpperC

我让它工作起来了,所有的变体都按应该的方式显示在圣安娜,但我想知道,有没有更简单的方法,因为它看起来很杂乱

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

console.log('sint-anna'.capitalize());
console.log('sint anna'.capitalize());
console.log('sint-Anna'.capitalize());
console.log('Sint Anna'.capitalize());
console.log('SiNt anna'.capitalize());
console.log('SINT ANNA'.capitalize());
控制台:

Sint-Anna
Sint-Anna
Sint-Anna
Sint-Anna
Sint-Anna
Sint-Anna
没有像
Si-ntAn-na
这样的错误输入会导致
Si-ntAn-na

String.prototype.capitalize = function(){
   this.split('-').map(function(str){
      return str[0].toUpperCase() + str.substr(1).toLowerCase();
   }).join("-")  
};

我想上面的话会更简洁。它在
-
上拆分,然后映射,将第一个字母和其他字母的小写字母大写,然后使用
数组与
-
连接。连接

如果这是工作代码,这可能比更适合感谢更合适。我不知道这个存在。会这样做。你有一个网站可以帮助你更快地使用
返回str[0].charAt(0).toUpperCase()+capitalizeMe.substring(1)
,这是许多测试的结果。我读对了吗?只有
sint anna
这样的词才能被编辑,而不是
sint anna
?@lennert\h是的。由于它是在
-
上拆分的,所以我将使用此代码进行测试。通常,我需要转换的单词中不会有空格,但人们永远不会知道。