document.evaluate regexes - PullRequest
       30

document.evaluate regexes

0 голосов
/ 27 июля 2011

Я хочу получить все элементы "a" с атрибутом href в этой форме: http (s): //any.example.com, где any может быть строкой, содержащей только буквы и / или цифры.Я новичок в регулярных выражениях и 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 ]

1 голос
/ 02 августа 2015

На сегодняшний день похоже, что браузеры в настоящее время не поддерживают 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
0 голосов
/ 27 июля 2011

Ваше регулярное выражение выглядит немного странно и чрезмерно сложно.
Попробуйте это:

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