在某些情况下,来自服务器的响应包含在DIV标记中,如下所示:
<div id="marker-aab44ba9d64a41398ed97a251dfb938e-629">42</div>
标签的内容可能是任何内容:字符串,数字,URL,javascript数组,javascript对象。
标签的格式始终为:
<div id="marker-[random string here]">content</div>
我想使用正则表达式删除标记。我该怎么做?
请记住:来自服务器的响应可能只是没有包装DIV的内容,因此正则表达式应该考虑到这一点。
答案 0 :(得分:3)
只需使用锚点:
var res = str.replace(/^<div[^>]*>|<\/div>$/g, '');
如果你的div之间的内容是html,你可以使用它来确保只删除你想要的div:
var res = str.replace(/^<div[^>]*? id\s*=\s*["']?marker-[^>]+>([\S\s]*)<\/div>$/g, '\1');
答案 1 :(得分:0)
这应该有效:
function (string) {
var match = string.match('<div id="marker-[^"]*">(.*)</div>');
if(match) {
return $(string).html();
} else {
return string;
}
};
:-)