2016-07-29 19 views
2

アドレスフィールドには、すべての単語の最初の文字を大文字にする必要があります。私は/\b./gを使用しており、最終的に[email protected]*&;'などの特殊文字の後の最初の文字も大文字になる問題が発生しました。すなわち、 King's Streetの代わりにKing'S Streetです。最初の文字を大文字にする正規表現

この動作を除外したり、表現全体をより最適に変更する方法はありますか?

+0

JavaScript? –

+2

正規表現をテストするための手順については、いくつかの優れたオンラインツールがあります。 https://regex101.com/ – jimmy

答えて

2

あなたの正規表現がされる(^|[ ])

\bを置き換える:/(^|[ ])./g

説明:definitionによって

\bは:単語の先頭や末尾に一致するものを見つけるために使用されます。

(^|[ ])は、文字列または

(^|[ ]).は、文字と文字列の最初の文字が続くすべてのスペースにマッチする任意の空白文字の始まりと一致します。

サイドノート:

すべての空白に一致するように(^|\s)を使用してください。

あなたの正規表現は次のようになります。/(^|\s)./g

1

あなたが先読みを使用できます。

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

a demo on regex101.comを参照してください。

+0

は 'a'と' i'では動作しません。これをチェックしてください: ''私は学生です '' –

+0

は 'őúéé'やその他のユニコード文字では動作しません。 –

関連する問題