用于从段落中删除所有属性的正则表达式

时间:2011-02-03 12:03:24

标签: javascript regex

我知道正则表达式通常不应该用于解析html内容。在我的特殊情况下,我需要它们 (原因是,我正在使用rte编辑器,当粘贴到编辑器中时,需要对段落的属性进行一些替换)。

我有类似

的东西
<p attribute1="val1" attribute2="val2" attribut="val3" ...>text blah blah</p>

我需要剥离所有属性以便我得到

<p>text blah blah</p>

如何使用正则表达式完成此操作?

从所有可能的html标签中删除属性的解决方案也很受欢迎。

3 个答案:

答案 0 :(得分:5)

这样的东西应该适用于所有标签:

replace(/<\s*(\w+).*?>/, '<$1>')

仅限段落,只需替换\w

replace(/<\s*p.*?>/, '<p>')

开头的\s*允许在标记名称之前添加空格,因此如果由于某种原因有< p class="foo">,那么它也适用于此。

答案 1 :(得分:3)

因为html标记在标记名称之前不能有空格并且可以在多行上继续,所以我建议这样做:

replace(/<(\w+)(.|[\r\n])*?>/, '<$1>');

仅限段落:

replace(/<p\s+?(.|[\r\n])*?>/, '<p>');

答案 2 :(得分:0)

perl -lpe 's/(<\w+)\s+[^>]*/$1/'