字符串文字的JavaScript正则表达式?

时间:2013-01-30 15:41:37

标签: javascript regex literals

  

可能重复:
  Is there a RegExp.escape function in Javascript?

我目前正在使用:var keywords = new RegExp(req.params.keywords, 'i');

问题是,req.params.keywords == '.*',这将匹配任何内容,我想要的是它与字面匹配.*,如\.\*\

是否有一个更优雅的解决方案,而不是使用\转义每个传递的单个字符?

1 个答案:

答案 0 :(得分:1)

如果要按字面匹配,而不是使用字符串中包含的正则表达式,请不要使用正则表达式。使用字符串indexOf()函数查看字符串是否包含另一个字符串。

对于不区分大小写的匹配,您可以在匹配前将每个字符串转换为小写。

var searchForString = req.params.keywords.toLowerCase();
var searchInString = xxx.toLowerCase();
if (searchInString.indexOf(searchForString) >= 0) {
    ... then it matches ...
}