2016-07-29 100 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字符。 –

相關問題