javascript - 使用正则表达式和反向引用删除 html 标签属性

标签 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/, '')

在我看来,最后一个解决方案应该可行,但正则表达式似乎不同意我的观点......

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

最佳答案

反向引用不能在 character classes 内部使用.

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

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

关于javascript - 使用正则表达式和反向引用删除 html 标签属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25436707/

相关文章:

javascript - 调用函数用正则表达式替换某些子字符串的问题

JAVASCRIPT + HTML 按钮值与 getElements

javascript - JQuery POST 重定向

java - String 的 replaceAll() 方法和转义字符

java - 使用正则表达式创建吗啡查询

java - float 和非 float 的正则表达式,后跟单词

regex - Java 8 Matcher 说有匹配项,但 groupCount 为 0

javascript - 用鼠标单击并拖动绘制一个矩形 - javascript

javascript - 正则表达式检测 Xbox 控件

Javascript:解析公式的正则表达式