我知道正则表达式通常不应该用于解析html内容.在我的特殊情况下,我需要它们 (原因是,我使用的是rte编辑器,当粘贴到编辑器中时,需要替换段落的属性).
我有类似的东西
<p attribute1="val1" attribute2="val2" attribut="val3" ...>text blah blah</p>
Run Code Online (Sandbox Code Playgroud)
我需要剥离所有属性,以便我得到
<p>text blah blah</p>
Run Code Online (Sandbox Code Playgroud)
如何使用正则表达式完成此操作?
从所有可能的html标签中去除属性的解决方案也很受欢迎.
这样的东西应该适用于所有标签:
replace(/<\s*(\w+).*?>/, '<$1>')
Run Code Online (Sandbox Code Playgroud)
仅限段落,只需替换\w:
replace(/<\s*p.*?>/, '<p>')
Run Code Online (Sandbox Code Playgroud)
将\s*在开始允许标签名之前的空白,因此,如果您由于某种原因有< p class="foo">,它也适用于这一点.
因为 html 标签在标签名称之前不能有空格并且可以在多行上继续,所以我建议这样做:
replace(/<(\w+)(.|[\r\n])*?>/, '<$1>');
Run Code Online (Sandbox Code Playgroud)
仅适用于段落:
replace(/<p\s+?(.|[\r\n])*?>/, '<p>');
Run Code Online (Sandbox Code Playgroud)