Regexp剥离包装div标记



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

<div id="marker-aab44ba9d64a41398ed97a251dfb938e-629">42</div>

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

标签的格式总是:

<div id="marker-[random string here]">content</div>

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

请记住:来自服务器的响应可能只是内容而不包含DIV,因此regexp应该考虑到这一点。

你可以使用锚:

var res = str.replace(/^<div[^>]*>|</div>$/g, '');

如果你的div标签之间的内容是在HTML中,你可以使用这个来确保只删除你想要的div:

var res = str.replace(/^<div[^>]*? ids*=s*["']?marker-[^>]+>([Ss]*)</div>$/g, '1');

应该可以:

function (string) {
    var match = string.match('<div id="marker-[^"]*">(.*)</div>');
    if(match) {
        return $(string).html(); 
    } else {
        return string; 
    }
};

: -)

最新更新