正则表达式删除除一系列特定字符之外的所有字符串

时间:2014-08-22 02:37:39

标签: javascript regex


我需要你的帮助,使用字符串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加载的字符串文档时出错 提前感谢您的建议!

3 个答案:

答案 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);

Regular expression visualization

Debuggex Demo

答案 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>'

DEMO

答案 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](不是空白或空白)或类似内容。