从字符串创建Javascript正则表达式-为什么它不起作用?
我的字符串是:从字符串创建Javascript正则表达式-为什么它不起作用?,javascript,regex,Javascript,Regex,我的字符串是: ... abc { color: red; border-color: black; } ... 我想在花括号之间匹配(替换)所有东西。我成功地编写了如下工作regexp: /\{[.\s\w:;-]*\}/ig 但我需要从字符串创建regexp,但它不起作用: new RegExp("{[.\s\w:;-]*}","ig"); // does not work 一切都很顺利:您可以使用: var re = new RegExp("\\{[\\S\\s]*\\}
...
abc {
color: red;
border-color: black;
}
...
我想在花括号之间匹配(替换)所有东西。我成功地编写了如下工作regexp:
/\{[.\s\w:;-]*\}/ig
但我需要从字符串创建regexp,但它不起作用:
new RegExp("{[.\s\w:;-]*}","ig"); // does not work
一切都很顺利:您可以使用:
var re = new RegExp("\\{[\\S\\s]*\\}", "g");
以匹配JS中的换行符
- 构造
对象时必须使用RegExp
(双转义)\\
- 因为JS没有
(DOTALL)标志,所以使用s
匹配所有字符,包括换行符[\s\s]
PS:但是请记住,它不会处理嵌套的大括号。
\s
在regexp中表示特殊的含义,但是字符串中的\s
与s
相同
您需要转义\
,以便正则表达式解析器看到它
new RegExp("\\{[.\\s\\w:;-]*\\}","ig");
检查此更新的小提琴 你必须躲开刀砍。塔茨
new RegExp("{[.\\s\\w:;-]*}","ig");
创建regexp后,请尝试打印它。应该很清楚发生了什么。为什么要用regexp解析CSS?