JavaScript (少なくとも最も広く使用されているバージョン) は Unicode を完全にはサポートしていません。つまり、\w
ラテン文字、10 進数字、アンダースコア ( [a-zA-Z0-9_]
) のみに\b
一致し、単語文字と単語以外の文字の境界に一致します。
ラテン語またはキリル語を使用して入力文字列内のすべての単語を検索するには、次のようにする必要があります。
.match(/[\wа-я]+/ig); // where а is the Cyrillic а.
または、必要に応じて:
.match(/[\w\u0430-\u044f]+/ig);
もちろん、これはおそらくコードを少し調整する必要があることを意味します。ここでは、単語の境界ではなくすべての単語に一致するためです。here で[а-я]
説明されているように、「基本的なキリル文字」の任意の文字に一致することに注意してください。この範囲外の文字に一致させるには、必要に応じて文字セットを変更してそれらの文字を含めることができます。たとえば、ロシア語の Á/ё にも一致させるには、 を使用します。[а-яё]
また、トリプルブラケットパターンは次のように簡略化できることに注意してください。
.replace(/\[{3}[^]]*]{3}/g, '')
または、XRegExpプロジェクト (ベースの JavaScript 正規表現エンジンに新機能を追加するためのオープンソース プロジェクト) とそのUnicodeアドオンを確認することもできます。