1

我有这样的字符串:

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+>$/, '');,但它似乎只有在只有一个标签时才有效。更多它根本不起作用

在这里提琴

4

3 回答 3

3

您缺少全局修饰符(查找所有匹配项,而不仅仅是第一个匹配项),您还应该使其非贪婪(添加?after \S+)。还要删除$仅在字符串末尾匹配的因为:

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

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

于 2013-09-07T17:44:45.233 回答
2
string.replace(/<\/\S+>/g, '');

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

此外,这$意味着它只会匹配表达式的最后一个实例。删除它应该得到你想要的。

于 2013-09-07T17:44:07.987 回答
1

是的,不要用于$

/<\/\S+>$/

小提琴

于 2013-09-07T17:48:39.487 回答