以下字符串是HTM5中的有效HTML,即使属性中包含>
:
'<span src="whatever.png" data-info="hello>there">text</span>';
在使用以下变体之前,几乎all solutions proposed
replace( /<.*?>/g, '' )
由于属性中的>
而失败了。
还可以选择将内容写入虚拟元素,然后回读textContent
,但在处理大量数据时速度非常慢。
所以,我想知道是否有人有任何建议?删除属性 - 或至少在第一遍正则表达式中使用匹配引号的属性值,然后第二遍剥离标记似乎可能是要走的路,但我不能完全理解它!
答案 0 :(得分:-2)
我相信这个正则表达式应该适合你的目的:
Doit
基本上,它匹配/<([^\"\'>]*|\"([^"\\]|\\.)*\"|\'([^'\\]|\\.)*\')*>/g
,"
或'
以外的任何字符,或匹配>
或"
后跟任何字符后跟另一个字符'
或"
。
只需使用与原始问题相同的方法 - '