#a:{width:100px;height:100px;background-color:black;}#b:{width:100px;}
我有上面的字符串
我希望只有在:
和#a
之类的css选择器从此字符串中删除之后才会出现#b
字符
我认为我必须使用正则表达式,所以我写了一个:
/[#\.A-Za-z0-9]+([:])[{]/g
在 regex101
上查看此正则表达式但您知道它与:
匹配,但当我尝试使用replace
方法删除此内容时,整个#a:{
和#b:{
将被删除
任何帮助都会很棒!
答案 0 :(得分:2)
正则表达式几乎是正确的。您需要做的是重新使用$1$2
而不是空字符串
还要对正则表达式进行一些小改动
/([#.A-Za-z0-9]+):({)/g
所做的更改
([#.A-Za-z0-9]+)
括在括号内。匹配的字符串会在$1
中捕获,因此第一个匹配$1
将包含#a
.
,因为它在课堂上失去意义。 [{]
到({)
[]
周围没有任何区别,因此放弃它。附在()
中,因此在$2
中被捕获,例如在第一场比赛中,$2
将会成为{
替换字符串$1$2
将输出
#a{width:100px;height:100px;background-color:black;} #b{width:100px;}
答案 1 :(得分:1)
<强>的Javascript 强>
var value = "#a:{width:100px;height:100px;background-color:black;}#b:{width:100px;}";
alert(value.replace(/(#.):/g, "$1"));
示例: http://jsfiddle.net/7hs0jgd2/