使用 JS 或 JQuery 将所有大写字母转换为标题大小写的最有效方法?

LBF*_*LBF 6 javascript regex jquery

我有一个最初全部大写的字符串,我希望它是标题大小写:

这是我的弦 为什么我要大喊大叫?

我希望它是:

这是我的绳子 为什么我要大喊大叫?

当字母最初是大写时,我不能使用 css text-transform:capitalize。所以我知道我必须使用JS。我试过这个,它有效,但我不确定它是否非常有效:

 $('.location').each(function () {

    var upper = $(this).html();
    var lower = upper.toLowerCase();
    $(this).replaceWith(lower); 

});
Run Code Online (Sandbox Code Playgroud)

现在我的字母实际上是小写的,我使用 CSS text-transform:capitalize

有没有更有效的方法来做到这一点?(我已经在网站上使用了 jQuery,所以这就是我在上面使用它的原因。)

谢谢!

Cer*_*nce 8

您可以匹配连续的单词字符,并使用替换函数替换第一个字符(原样),然后是其余的字符toLowerCase()

const text = 'THIS IS MY STRING WHY AM I YELLLING?';
const output = text.replace(
  /(\w)(\w*)/g,
  (_, firstChar, rest) => firstChar + rest.toLowerCase()
);
console.log(output);
Run Code Online (Sandbox Code Playgroud)