对于地址字段,我需要每个单词的第一个字符为大写。我一直在使用/\b./g
这最终导致一个问题,即在特殊字符(如[email protected]*&;'
等)之后的首字符也被大写。即。 King'S Street
而不是King's Street
。正则表达式大写第一个字符
有没有办法调整该表达式来排除该行为或将整个表达式更改为最佳?
对于地址字段,我需要每个单词的第一个字符为大写。我一直在使用/\b./g
这最终导致一个问题,即在特殊字符(如[email protected]*&;'
等)之后的首字符也被大写。即。 King'S Street
而不是King's Street
。正则表达式大写第一个字符
有没有办法调整该表达式来排除该行为或将整个表达式更改为最佳?
与(^|[ ])
你的正则表达式替换\b
将是:/(^|[ ])./g
说明:
\b
通过definition:用来查找匹配一个单词的开头或结尾。
(^|[ ])
将匹配字符串或任何空格字符
(^|[ ]).
将每一个空间后跟一个字符和字符串的第一个字符匹配的开始。
旁注:
使用(^|\s)
每一个空格相匹配。
你的正则表达式为:/(^|\s)./g
不适用于'a'和'i'。检查:'“我是学生”' –
将不能与'őúéá'或任何其他unicode字符。 –
JavaScript,对吧? –
有一些很棒的在线工具,包含测试你的正则表达式的指令,例如https://regex101.com/ – jimmy