正则表达式用于大写第一个字符

时间:2016-07-29 13:38:48

标签: javascript regex

对于地址字段,我需要每个单词的第一个字符为大写。我一直在使用/\b./g,这最终导致了一个问题,即!@*&;'之类的特殊字符之后的第一个字符也是大写的。即。 King'S Street代替King's Street

有没有办法调整该表达式以排除该行为或更改整个表达式更优化?

2 个答案:

答案 0 :(得分:2)

\b替换为(^|[ ])

你的正则表达式将是:/(^|[ ])./g

<强>解释

definition之前的

\b:用于在单词的开头或结尾找到匹配项。

(^|[ ])将匹配字符串的开头或任何空格字符

(^|[ ]).将匹配每个空格,后跟一个字符和字符串的第一个字符。

旁注:

使用(^|\s)匹配每个空格。

你的正则表达式将是:/(^|\s)./g

答案 1 :(得分:1)

你可以使用前瞻:

\b[a-z](?=\w+)

请参阅a demo on regex101.com