我目前正在使用:var keywords = new RegExp(req.params.keywords, 'i');
关键是,如果req.params.keywords == '.*'
,这将匹配任何东西,我想要的是它在.*
字面上匹配,如\.\*\
有没有比用 a 转义每个传递的单个字符更优雅的解决方案\
?
我目前正在使用:var keywords = new RegExp(req.params.keywords, 'i');
关键是,如果req.params.keywords == '.*'
,这将匹配任何东西,我想要的是它在.*
字面上匹配,如\.\*\
有没有比用 a 转义每个传递的单个字符更优雅的解决方案\
?
如果要按字面意思进行匹配,请不要使用字符串中包含的正则表达式,而不要使用正则表达式。使用字符串indexOf()
函数查看一个字符串是否包含在另一个字符串中。
对于不区分大小写的匹配,您在匹配之前将每个字符串转换为小写。
var searchForString = req.params.keywords.toLowerCase();
var searchInString = xxx.toLowerCase();
if (searchInString.indexOf(searchForString) >= 0) {
... then it matches ...
}