在JavaScript中,我使用此正则表达式从文本字符串中删除所有HTML标签:
t.replace(/<\/?[^>]+>/g, '');
现在,我需要同样的东西,但是它应该保留以下标签(不应替换它们):
<strong>
</strong>
<b>
</b>
你能帮助我吗?我通常不使用正则表达式,所以如果这听起来太简单,请原谅。
最佳答案
只需使用否定的超前断言即可。
var s = '<strong> </strong>\n<b> </b> <h1> <h2> <a href="foo.com">';
alert(s.replace(/<(?!\/?b>|\/?strong>)[^>]+>/g, ''));
开头的
(?!\/?b>|\/?strong>)
否定前瞻断言匹配,即<
后面不会是/b>
或b>
或/strong>
或strong>
字符串。RegEx DEMO