在textarea上的Javascript正则表达式

时间:2014-02-19 07:33:08

标签: javascript regex strip

在textarea中,人们可以粘贴文字。这可能会带来很多不需要的属性,比如style属性。我正在尝试创建一个删除所有这些属性的正则表达式,但保留html标记。

我似乎无法让它发挥作用。我从搜索中尝试了几个RegExps,但它们似乎不合适。 所有的孩子和textarea中的所有元素都应该被其所有属性所剥离。

这个RegExp应该怎么样?

我目前的RegExp(在regex for removing attributes上找到):

text.replace(new RegExp(/<\s*(\w+).*?>/, 'igm'), '');

请帮我找到正确的正则表达式

修改

澄清一下:

<strong style="box-sizing: border-box; color: rgb(51, 51, 51); font-family: Arial, sans-serif; font-size: 13px; line-height: 13.008000373840332px;"><u style="box-sizing: border-box;">Trade</u></strong>

应替换为:

<strong><ul>Trade</ul></strong>

重要提示:这可能会在textarea中多次出现,因此应该更换所有内容。

修改

此外,用<strong>替换所有<b>代码是否明智?这样文本就更短了。

3 个答案:

答案 0 :(得分:0)

这是使用正则表达式解析HTML的危险区域,但是呢。

text.replace(/<(\w*) .*?(\/?)>/g,"<$1$2>")

答案 1 :(得分:0)

这看起来像你可能需要的那样:

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

这将从一个开始标记中删除属性。

答案 2 :(得分:0)

这个有用:

str.replace(/<[^>]*?(\s+[^=]+="[^"]*?")>/g, "");