从字符串创建的 JavaScript 正则表达式 - 为什么它不起作用?

标签 javascript regex

我的字符串是:

...
abc {
   color: red;
   border-color: black;
}
...

我想匹配(替换)大括号之间的所有内容。我设法编写了这样的工作正则表达式:

/\{[.\s\w:;-]*\}/ig

但是我需要从字符串创建正则表达式,但它不起作用:

new RegExp("{[.\s\w:;-]*}","ig"); // does not work

一切都在 fiddle 上:http://jsfiddle.net/3ru18Lj9/

最佳答案

您可以使用:

var re = new RegExp("\\{[\\S\\s]*\\}", "g");

在 JS 中也可以匹配换行符。

  • 构造 RegExp 对象时必须使用 \\(双重转义)。
  • 由于 JS 没有 s (DOTALL) 标志,因此使用 [\S\s] 来匹配包括换行符在内的所有字符。

PS:但是请记住,它不会处理嵌套大括号。

关于从字符串创建的 JavaScript 正则表达式 - 为什么它不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27781121/

相关文章:

javascript - 另一个D3向强制有向图添加文本

javascript - 如何将变量从 javascript 文件传递​​到服务器到 ejs 模板

javascript - 使用 AngularJS 跟踪和统计点击次数并发布到 MongoDB

python - 我想从内容字符串 : "<a href="http://twitter. com/download/iphone"rel ="nofollow">Twitter for iPhone</a>"中提取特定模式

c# - 删除不是 ASCII 32 到 175 C# 的字符的更好方法

python - 如何通过在python中排除RFC1918私有(private)地址来匹配IPV4正则表达式模式

javascript - "Cut and Paste"- 使用 Javascript 在 DOM 中移动节点

javascript - Ajax:Chrome 扩展:PHP 加载图像问题

python - 如何检查 python 字符串以查看它是否在 HH :MM time format? 中

html - 当文本中存在多个标签时,如何使用正则表达式将单个 html 标签与内部标签相匹配