3

テーブルの行をフィルタリングするために実行している正規表現があります。フィルタリングはJavascriptで行われます。

私はcoffeescriptを書いていますが、Javascriptソリューションで十分です。自分でcoffeescriptに変換できます。

role正規表現を使用してフィルタリングしたい文字列を含む値があります。問題は、文字列role に「+」記号が埋め込まれている場合とされていない場合があることです。 プラス記号は正規表現検索の特殊文字であり、検索文字列でエスケープする必要があります。

次のような正規表現検索文字列を作成します(coffeescript):

"^"+role+"$"

role正規表現が機能するように、「+」記号をエスケープするために前処理するにはどうすればよいですか?

4

1 に答える 1

5

+特別な意味を持つ唯一のキャラクターとはほど遠いです。必要なすべての文字をエスケープする関数は次のとおりです。

function regex_escape(str) {
    return str.replace(new RegExp('[.\\\\+*?\\[\\^\\]$(){}=!<>|:\\-]', 'g'), '\\$&');
}
于 2012-06-20T15:18:46.500 に答える