正则表达式去除包装 DIV 标签

Hel*_*lge 2 html javascript regex strip

在某些情况下,来自服务器的响应被包装在 DIV 标签中,如下所示:

<div id="marker-aab44ba9d64a41398ed97a251dfb938e-629">42</div>
Run Code Online (Sandbox Code Playgroud)

标签的内容可以是任何内容:字符串、数字、URL、javascript 数组、javascript 对象。

标签的格式始终为:

<div id="marker-[random string here]">content</div>
Run Code Online (Sandbox Code Playgroud)

我想使用正则表达式去除标签,我该怎么做?

请记住:服务器的响应可能只是没有包装 DIV 的内容,因此正则表达式应该考虑到这一点。

Cas*_*yte 5

您可以使用锚点:

var res = str.replace(/^<div[^>]*>|<\/div>$/g, '');
Run Code Online (Sandbox Code Playgroud)

如果标签之间的内容div是 HTML 格式,您可以使用它来确保只删除您想要的 div:

var res = str.replace(/^<div[^>]*? id\s*=\s*["']?marker-[^>]+>([\S\s]*)<\/div>$/g, '\1');
Run Code Online (Sandbox Code Playgroud)