0

可能重复:
Javascript 中是否有 RegExp.escape 函数?

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

关键是,如果req.params.keywords == '.*',这将匹配任何东西,我想要的是它在.*字面上匹配,如\.\*\

有没有比用 a 转义每个传递的单个字符更优雅的解决方案\

4

1 回答 1

2

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

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

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