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

标签 javascript regex literals

Possible Duplicate:
Is there a RegExp.escape function in Javascript?

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

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

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

最佳答案

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

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

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

关于字符串文字的 JavaScript 正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14607884/

相关文章:

javascript - Android Chrome 中意外的插入符号重新定位

ruby - 什么是用于检查某些文本是否仅包含 URL 的正则表达式?

python - 完整 Linux 文件路径的正则表达式

c - 为什么-32768 在下面的平台上有 signed long 类型?

javascript - 在 IF 中设置时,从 else 语句获取间隔 ID

javascript - 当输入的值更改时,不会触发 Onchange 事件

java - char c = 一些整数文字可能会编译,但 float f = 一些浮点文字永远不会编译。为什么?

javascript - 将 Prop 传递给 map 中的温度文字

javascript - Jquery ajax函数调用vb文件中的代码

python - 如何找到以 <!-- 开头的 HTML 注释的第一个实例? (Python)