我的字符串是:
...
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/