0

重複の可能性:
Javascript に RegExp.escape 関数はありますか?

私は現在使用しています:var keywords = new RegExp(req.params.keywords, 'i');

キャッチは、もしreq.params.keywords == '.*'、これが何にでもマッチするということです.*\.\*\

渡されたすべての単一文字を でエスケープするよりもエレガントな解決策はあり\ますか?

4

1 に答える 1

2

文字列に含まれる正規表現を使用する代わりに、文字どおりに一致させたい場合は、正規表現を使用しないでください。stringindexOf()関数を使用して、文字列が別の文字列に含まれているかどうかを確認します。

大文字と小文字を区別しない一致では、各文字列をたとえば小文字に変換してから一致させます。

var searchForString = req.params.keywords.toLowerCase();
var searchInString = xxx.toLowerCase();
if (searchInString.indexOf(searchForString) >= 0) {
    ... then it matches ...
}
于 2013-01-30T15:50:57.060 に答える