2016-07-29 23 views
2

对于地址字段,我需要每个单词的第一个字符为大写。我一直在使用/\b./g这最终导致一个问题,即在特殊字符(如[email protected]*&;'等)之后的首字符也被大写。即。 King'S Street而不是King's Street正则表达式大写第一个字符

有没有办法调整该表达式来排除该行为或将整个表达式更改为最佳?

+0

JavaScript,对吧? –

+2

有一些很棒的在线工具,包含测试你的正则表达式的指令,例如https://regex101.com/ – jimmy

回答

2

(^|[ ])

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

说明:

\b通过definition:用来查找匹配一个单词的开头或结尾。

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

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

旁注:

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

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

1

你可以使用一个前瞻:

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

a demo on regex101.com

+0

不适用于'a'和'i'。检查:'“我是学生”' –

+0

将不能与'őúéá'或任何其他unicode字符。 –

相关问题