我已经编写了这段代码。我想要一个小的正则表达式。

String.prototype.capitalize = function() {
    return this.charAt(0).toUpperCase() + this.slice(1);
}
String.prototype.initCap = function () {
    var new_str = this.split(' '),
        i,
        arr = [];
    for (i = 0; i < new_str.length; i++) {
        arr.push(initCap(new_str[i]).capitalize());
    }
    return arr.join(' ');
}
alert("hello world".initCap());

Fiddle

我想要的是



我上面的代码为我提供了解决方案,但我想使用regex提供更好,更快的解决方案

最佳答案

你可以试试:

  • 将整个字符串转换为小写的
  • 然后使用replace()方法转换第一个字母,将每个单词的第一个字母转换为大写

  • str = "hEllo woRld";
    String.prototype.initCap = function () {
       return this.toLowerCase().replace(/(?:^|\s)[a-z]/g, function (m) {
          return m.toUpperCase();
       });
    };
    console.log(str.initCap());

    10-05 22:22