为字符串中的每个单词大写第一个字母。本地化问题

时间:2016-10-03 17:50:07

标签: javascript

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

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

它适用于英语单词但是当我尝试用非英语首字母输入我的单词时,它会使前两个字母变为大写字母

  

输入字符串:“şanlıurfa”
输出字符串:“ŞAnlıurfa”

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

感谢。

1 个答案:

答案 0 :(得分:1)

正则表达式是导致问题的原因,如果它是一个特殊字符,则不会选择第一个字符,将其更改为\S+并且它将按您的需要工作。这是一个jsfiddle,它正常工作