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