JS - 从字符串中删除每个关闭的html标记

时间:2013-09-07 17:42:34

标签: javascript html regex

我有这样的字符串:

var string = '<div class="post-content"></div><div class="post"></div><div id="content" class="col-lg-12"></div><div class="row"></div><div id="container" class="container"></div><body class="page page-id-157 page-template page-template-page-fullwidth-no-sidebar-php logged-in admin-bar  customize-support" style="">';

我想从中删除所有关闭的标签。它可能是也可能不是div。

我已经尝试了string.replace(/<\/\S+>$/, '');但它似乎仅在只有一个标签时才有用。更多它根本不起作用

Fiddle here

3 个答案:

答案 0 :(得分:3)

你错过了全局修饰符(找到所有匹配而不只是第一个匹配),你也应该让它变得非贪婪(在?之后添加\S+)。同时删除仅在字符串末尾匹配的$

string.replace(/<\/\S+?>/g, '');

另请注意,这会删除</div>之类的标签,但不会删除</ div>,因为您不允许使用空格。

答案 1 :(得分:2)

string.replace(/<\/\S+>/g, '');

尾部斜杠之后的“g”表示 global ,这意味着只需替换正则表达式的所有实例,而不是第一个。

此外,$表示匹配表达式的 last 实例。删除它应该得到你想要的。

答案 2 :(得分:1)

是的,请不要在$中使用

/<\/\S+>$/

fiddle