javascript - javascript正则表达式中的变量

标签 javascript regex

我看了很多关于这类问题的类似问题,但他们都没有解决我的问题......

这是我要匹配的字符串:“|6[1]|”其中“6”是我必须放入正则表达式中的变量。

我尝试创建一个(pid 是包含数字的变量):

var filter = new RegExp("/\|"+pid+"[\d*\]\|/");

它看起来不工作..尝试使用 chrome 控制台

enter image description here

最佳答案

当您从字符串构造正则表达式时,您不需要 / 分隔符:

var filter = new RegExp("\|"+pid+"[\d*\]\|");

/ 标记用于向解析器表示正则表达式文字的开始/结束,很像 "'标记表示字符串文字的开始/结束。在这种情况下,您使用的是字符串文字,因此不需要正则表达式文字分隔符。

您的实际正则表达式不起作用,因为:

  • 您错过了左方括号中的转义字符
  • 从字符串构建正则表达式时需要转义文字反斜杠

所以工作代码应该是:

var filter = new RegExp("\\|"+pid+"\\[\\d*\\]\\|");
//                       ^         ^^ ^   ^  ^ Add in these backslashes

关于javascript - javascript正则表达式中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21672347/

相关文章:

java - 向现有 Java 正则表达式添加空格处理

python-3.x - 使用正则表达式提取字符串之间的文本

正则表达式问题 : how do I replace a single space with a newline in VI

javascript - 如何在javascript函数中读取html下拉菜单的所选项目的值

javascript - 重新排列 div 中的类然后使用 mouseleave 重置的 Jquery mouseover

javascript - 如何正确清除 ionic 历史记录?

正则表达式在同一行重复单词

javascript - 将文件转换为数组然后输出对象值时遇到问题

javascript - XMLHttpRequest 无法向 Flask 服务器发出请求

regex - 如何在 Atom 中替换换行符?