我正在尝试构建一个JavaScript initcap函数,该函数正确地将每个单词中的第一个字母转换为大写字母,将其他字母转换为小写字母。
我找到的所有示例都会转换第一个不正确的字符,例如: joe smith(c e o)应该转换为Joe Smith(C E O),而不是Joe Smith(c E O)
CSS转换不是一个选项,因为值会返回给服务器。
可能使用正则表达式是要走的路,但我不是这方面的专家。有什么帮助吗?
答案 0 :(得分:0)
对这个重复的答案进行小编辑,如果您阅读了对已接受答案的评论,您将在那里找到答案:
function toTitleCase(str)
{
return str.replace(/([^\W_]+[^\s-]*) */g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});
}
答案 1 :(得分:0)
基于前瞻的另一个版本:
joe smith(c e o)'.replace(/\b[a-z](?=(?:[a-z]|\W|$))/g, function($0) {
return $0.toUpperCase();})
//=> "Joe Smith(C E O)"