关于javascript:为字符串中的每个单词大写第一个字母。

Capitalizing First Letter for each word in string. Localization issue

我正在使用此函数将字符串中的第一个字母大写

1
2
3
4
5
function capitalizeFirstLetter(str) {
  return str.replace(/\w\S*/g, function (txt) {
    return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
  });
}

它对英语单词很有用,但是当我用非英语的第一个字母输入单词时,它会使前两个字母变为大写。

Input string :"?anl?urfa" Output string :"?Anl?urfa"

我只想把第一个字母大写。

谢谢。


regex是导致问题的原因,它没有选择第一个字符,如果它是一个特殊字符,那么将其更改为\S+,它将根据需要工作。这是一个处理它的工作