使用正则表达式和反向引用删除html标记的属性

时间:2014-08-21 22:05:36

标签: javascript regex

我需要从html属性中删除“style”属性 我用这个正则表达式实现了这个目标:

"<div id='mioId'  style='color:black;background-color:red' attr='stuff' class='myClass' />".replace(/style=('|")[^('|")]*\1/, '')

我想做的是使用反向引用来匹配内容。 像这样的东西:

"<div id='mioId'  style='color:black;background-color:red' attr='stuff' class='myClass' />".replace(/style=('|")[^\1]*\1/, '')

在我的脑海中,这最后一个解决方案应该有效,但正则表达似乎不同意我...

注意:我注意到对其他方法感兴趣,我只想了解我做错了什么

1 个答案:

答案 0 :(得分:2)

不能在character classes内使用反向引用。

您必须使用Negative Lookahead,而不是使用否定的字符类。

.replace(/style=(['"])(?:(?!\1).)*\1/, '')