我使用的是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?
//无效(连字符后的所有字符都返回小写
如果有任何其他情况下,我。没有考虑请让我知道,我不希望除了满座和破折号以外的特殊字符被计算在内(例如,我不想在撇号后面加上大写)
尝试'/ \ b \ w + \ b/g' – FrankieTheKneeMan
@FrankieTheKneeMan这不适用于撇号,例如。 “不”将转向“不要”而不是“不要”。 –
@BrianRogers良好的捕捉。 '/ [\ w'] + /'(我觉得字边界是不必要的)。 – FrankieTheKneeMan