2014-03-13 52 views
2

我正在尝试构建一个xml文档中包含的url列表,其中我匹配<id>http://xxx.xxxx.com</id>中的所有内容,并且遇到了问题。如何匹配已知的XML标签?

我试图与此模式匹配:/(?<id>)http://(.*?).com(?=</id>)/g

它适用于regexr.com,但我似乎无法得到它与我的jsfunction工作:

var regEx = new RegExp('/(?&lt;id>)http://(.*?).com(?=&lt;/id>)/g'); 

我得到一个错误:

SyntaxError: Invalid regular expression: //(?<id>)http://(.*?).com(?=</id>)/g/: Invalid group

+2

那你打算'(?...)'什么意思? –

+0

我正在寻找匹配标签内的内容,这是本例中的url。它总是以http://开头,并以.com结尾,所以这种模式会匹配,但它不会在JS中为我工作,因为我收到我显示的错误。 – fskirschbaum

+1

我明白了。但是'(?...)'是无效的,所以我想知道你为什么使用这个字符序列('('后​​面跟着'?')。 –

回答

1

尝试DOMParser;

// Code tested under Firefox 27 
var doc = new DOMParser() 
    .parseFromString('<id>http://xxx.xxxx.com</id>', "application/xml"); 
var ids = doc.querySelectorAll('id'); // Return: NodeList[id] 

但是它并不能在IE浏览< = 8(Browser compatibility