JavaScript にはネイティブ RegExp.escape 関数がありますか?
JavaScript では、任意の文字列から正規表現を作成するのが難しい場合があります。 Ruby には便利な RegExp.escape メソッドが用意されていますが、JavaScript には同等の組み込みメソッドがありません。
正規表現のエスケープ文字
正規表現にリテラル文字を含めるには、次のようにします。多くの場合、それらから逃れる必要があります。これは、それらの前にバックスラッシュ () を付けることで実現されます。たとえば、文字列 "[" と一致させるには、正規表現で "[" を使用します。
現在のエスケープ正規表現ソリューション
残念ながら、この関数は別の形式でリンクされています。答えは、^ (文字列の先頭)、$ (文字列の末尾)、および - (文字内の範囲に使用される) などの特定の文字をエスケープするのに不十分です。
包括的なエスケープ正規表現関数
別の応答で提案されている、より堅牢なエスケープ関数を以下に示します。
function escapeRegex(string) { return string.replace(/[/\-\^$*+?.()|[\]{}]/g, '\$&'); }
この関数は、他のソリューションで無視されている文字も含め、正規表現で特別な意味を持つすべての文字を効果的にエスケープします。その汎用性は文字クラスと正規表現本体の両方に拡張され、幅広いユースケースに適しています。
ネイティブ ソリューションの必要性
注目に値します。 JavaScript には標準の RegExp.escape メソッドがありません。提供された関数は実行可能な代替手段を提供しますが、ネイティブ実装の欠如は言語の機能における明らかな欠落のままです。
以上がJavaScript には RegExp エスケープ関数が組み込まれていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。