与正则表达式战斗....
我使用它来查找某些元素之间的HTML字符串:
for (i = 0; i < 2; i += 1) {
target = block[i]; // like BODY or HEAD
regex = RegExp('<' + target + '>(.)+</' + target + '>');
// in case string passed includes breaks/spaces
data = data.replace(/(\r\n|\n|\r)/gm,"").replace(/\s+/g," ")
.match(regex);
entry = data[0].replace(/<!-- [\s\S]*? -->/g, '');
console.log(entry);
}
虽然这很好,但它返回的内容如下:
<head>....everthing I want ....</head>
问题:
我如何修改正则表达式,以便我仍然可以指定我需要的内容元素,但只返回内容而不是内容&amp;令牌(如<head></head>
)。
谢谢!
答案 0 :(得分:1)
使用第一个匹配组而不是整个匹配。
regex = RegExp('<' + target + '>(.+)</' + target + '>');
然后......
entry = data[1].replace(/<!-- [\s\S]*? -->/g, '');