如何删除javascript字符串中的一个字符

时间:2014-12-13 09:22:47

标签: javascript regex replace

#a:{width:100px;height:100px;background-color:black;}#b:{width:100px;} 

我有上面的字符串

我希望只有在:#a之类的css选择器从此字符串中删除之后才会出现#b字符

我认为我必须使用正则表达式,所以我写了一个:

/[#\.A-Za-z0-9]+([:])[{]/g

regex101

上查看此正则表达式

但您知道它与:匹配,但当我尝试使用replace方法删除此内容时,整个#a:{#b:{将被删除

任何帮助都会很棒!

2 个答案:

答案 0 :(得分:2)

正则表达式几乎是正确的。您需要做的是重新使用$1$2而不是空字符串

还要对正则表达式进行一些小改动

/([#.A-Za-z0-9]+):({)/g

Regex Example

所做的更改

  • ([#.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/

enter image description here