【发布时间】:2021-11-22 18:21:05
【问题描述】:
我需要从 html 字符串中删除 html 属性。我有一些格式化的文本输入字段,允许用户复制和粘贴文本,同时保留基本的 html。问题是从 word doc 中复制的一些文本带有需要删除的属性。目前,我正在使用的正则表达式在正则表达式测试器中工作,但没有任何属性被删除。
删除属性的代码:
var stringhtml = '<div class="Paragraph BCX0 SCXW244271589" paraid="1364880375" paraeid="{8e523337-60c9-4b0d-8c73-fb1a70a2ba58}{165}" style="margin-bottom: 0px;margin-left:96px;padding:0px;user-select:text;-webkit-user-drag:none;-webkit-tap-highlight-color:transparent; overflow-wrap: break-word;">some text</div>'
var regex = /[a-zA-Z]*=".*?"/;
var replacedstring = stringhtml.replace(regex, '');
document.write(replacedstring);
感谢任何帮助!
【问题讨论】:
-
你忘记了
g标志:/[a-zA-Z]*=".*?"/g -
还可以添加
i标志并将[a-zA-Z]替换为[a-z]。另请注意,'和"都对属性值字符串有效。你可以试试这个正则表达式\s*[a-zA-Z]*=["'].*?["']\s*,因为如果它存在的话,它也会替换属性前后的空白。 -
我不知道你为什么需要
.*?。这对我来说似乎是无效的正则表达式。它与.*有何不同?
标签: javascript html regex