我需要你的帮助,使用字符串HTML文档中的Javascript Regex删除所有字符除 <body></body>
和整个字符串正文标记。
我尝试使用此功能但不起作用:
var str = "<html><head><title></title></head><body>my content</body></html>"
str.replace(/[^\<body\>(.+)\<\\body\>]+/g,'');
我只需要正文内容,其他选项是使用DOMParser
:
var oParser = new DOMParser(str);
var oDOM = oParser.parseFromString(str, "text/xml");
但这会导致解析通过Ajax加载的字符串文档时出错 提前感谢您的建议!
答案 0 :(得分:1)
var str = "<html><head><title></title></head><body>my content</body></html>"
str=str.match(/<(body)>[\s\S]*?<\/\1>/gi);
//also you can try this:
//str=str.match(/<(body)>.*?<\/\1>/gis);
答案 1 :(得分:1)
你可以试试这段代码,
> var str = "<html><head><title></title></head><body>my content</body></html>"
undefined
> str.replace(/.*?(<body>.*?<\/body>).*/g, '$1');
'<body>my content</body>'
答案 2 :(得分:0)
您不能(或至少不应该)使用replace
执行此操作;请尝试match
:
var str = "<html><head><title></title></head><body>my content</body></html>"
var m = str.match(/<body>.*<\/body>/);
console.log(m[0]); //=> "<body>my content</body>"
如果您有多行字符串,请将.
(不包括\n
)更改为[\S\s]
(不是空白或空白)或类似内容。