我的字符串是:
...
abc {
color: red;
border-color: black;
}
...
我想在花括号之间匹配(替换)所有内容。我设法写了这样的工作正则表达式:
/\{[.\s\w:;-]*\}/ig
但我需要从字符串创建regexp,它不起作用:
new RegExp("{[.\s\w:;-]*}","ig"); // does not work
一切都在小提琴上:http://jsfiddle.net/3ru18Lj9/
答案 0 :(得分:4)
您可以使用:
var re = new RegExp("\\{[\\S\\s]*\\}", "g");
在JS中匹配换行符。
\\
对象时,必须使用RegExp
(双重转义)。s
(DOTALL)标记,因此请使用[\S\s]
来匹配包括换行符在内的所有字符。PS:但请记住,它不会处理嵌套大括号。
答案 1 :(得分:2)
\s
表示特殊内容,但字符串中的\s
与s
相同。
您需要转义\
,以便正则表达式解析器可以看到它。
new RegExp("\\{[.\\s\\w:;-]*\\}","ig");
答案 2 :(得分:1)
检查这个更新的小提琴。
你必须逃避斜线。 tats it
new RegExp("{[.\\s\\w:;-]*}","ig");