正则表达式用于制作单词标题大小写(包括连字符)

时间:2013-07-24 00:22:49

标签: javascript regex

我正在使用regex让我获得95%的胜利:

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? //不起作用(连字符后的所有字符都返回小写。

如果还有其他方案我没有考虑过,请告诉我。我不想要除了句号和短划线之外的特殊字符(例如,我不想在撇号之后大写)。

1 个答案:

答案 0 :(得分:1)

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

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

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