document.evaluate regexes

时间:2011-07-27 10:40:02

标签: javascript regex dom xpath document.evaluate

我希望以这种形式获得所有带有href属性的“a”元素:http(s)://any.example.com其中any可以是仅包含字母和/或数字的字符串。 我是regex和XPath的新手,所以我无法做到正确。 我想出了正则表达式,但我不确定它是否100%正确: 代码:

/(http|https)://+[A-Za-z0-9]+\.example+\.+com/

所以XPath看起来像这样: 代码:

document.evaluate( "//a[@href='/(http|https)://+[A-Za-z0-9]+\.google+\.+com/']" , document , null , XPathResult.ORDERED_NODE_SNAPSHOT_TYPE , null );

但它不起作用。

如果有人能帮助我,我将不胜感激。

2 个答案:

答案 0 :(得分:1)

截至今天,看起来浏览器目前不支持XPATH 2.仅在XPATH 2.0中支持在属性上应用正则表达式

您希望在使用XPATH 1.0(无正则表达式)过滤元素后应用正则表达式,迭代元素和&使用JS级正则表达式进一步过滤元素

参考文献:

  1. https://stackoverflow.com/a/21405499/211794
  2. https://stackoverflow.com/a/6282877/211794
  3. https://developer.mozilla.org/en-US/docs/Web/API/Document/evaluate#Browser_compatibility

答案 1 :(得分:0)

你的正则表达式看起来有点过分,而且过于复杂 试试这个:

https?://[A-Za-z0-9]+\.example\.com/