我有这样的字符串:
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+>$/, '');
但它似乎仅在只有一个标签时才有用。更多它根本不起作用
答案 0 :(得分:3)
你错过了全局修饰符(找到所有匹配而不只是第一个匹配),你也应该让它变得非贪婪(在?
之后添加\S+
)。同时删除仅在字符串末尾匹配的$
:
string.replace(/<\/\S+?>/g, '');
另请注意,这会删除</div>
之类的标签,但不会删除</ div>
,因为您不允许使用空格。
答案 1 :(得分:2)
string.replace(/<\/\S+>/g, '');
尾部斜杠之后的“g”表示 global ,这意味着只需替换正则表达式的所有实例,而不是第一个。
此外,$
表示仅匹配表达式的 last 实例。删除它应该得到你想要的。
答案 2 :(得分:1)