如何在两个令牌之间正则表达字符串并返回没有令牌的字符串?

时间:2013-02-16 22:45:50

标签: javascript jquery regex string token

与正则表达式战斗....

我使用它来查找某些元素之间的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>)。

谢谢!

1 个答案:

答案 0 :(得分:1)

使用第一个匹配组而不是整个匹配。

regex = RegExp('<' + target + '>(.+)</' + target + '>');

然后......

entry = data[1].replace(/<!-- [\s\S]*? -->/g, '');