0

我正在使用regex95% 的方法:

var string = element.replace(/([^\W_]+[^\s\u2014\u002E]*) */g, function(txt){
      return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
})

正则表达式应采用任何字符串并以标题大小写形式返回。例如:

hello -> Hello// 工作

hElLo mY nAme Is -> Hello My Name Is// 工作

What-did-you-say-to-me? -> What-Did-You-Say-To-Me?// 不起作用(连字符后的所有字符都返回小写。

如果还有其他我没有考虑过的场景,请告诉我。我不希望计算句号和破折号以外的特殊字符(例如,我不想在撇号后大写)。

4

1 回答 1

2

您可以使用单词边界断言\b来更轻松地查找单词:

/\b[\w']+\b/g

这将找到起始单词边界,所有“单词”字符和撇号,然后是另一个单词边界。由于破折号应该算作单词边界,这应该可以捕捉到您的问题文本。

于 2013-07-24T00:38:50.667 回答