Преобразование регулярного выражения C # в JavaScript - PullRequest
2 голосов
/ 07 февраля 2011

Я конвертирую свою программу на C # в JavaScript для расширения Google Chrome.

Вот регулярное выражение C #:

Did you mean: </span><a href=/search.[a-zA-Z0-9=&;_-]{1,}q=[a-zA-Z0-9+-]{1,}

Как мне сопоставить одно и то же в JavaScript? То же регулярное выражение не работает.

Edit:

Строка ввода:

>Did you mean: </span><a href=/search?hl=en&amp;safe=off&amp;&amp;sa=X&amp;ei=hD9PTYKpKcKtgQei4pUP&amp;ved=0CBIQBSgA&amp;q=Linkin+Park-In+The+End&amp;spell=1class=spell>Linkin Park-In

Мне нужно соответствовать:

Did you mean: </span><a href=/search?hl=en&amp;safe=off&amp;&amp;sa=X&amp;ei=hD9PTYKpKcKtgQei4pUP&amp;ved=0CBIQBSgA&amp;q=Linkin+Park-In+The+End 

Примечание: цитаты отфильтрованы

1 Ответ

0 голосов
/ 07 февраля 2011

Можете ли вы попробовать это в Javascript, если он работает, как надо?

var rx = /Did you mean: <\/span><a href=["']?\/search.[a-zA-Z0-9=&;_-]+q=[a-zA-Z0-9+-]+/;

Возможно, мне не хватило нескольких символов, но я также изменил {1,}, который в основном эквивалентен +, и добавил проверку кавычек, которая может присутствовать после href. Одинарная или двойная кавычка.

Если я выполню это в Firebug на этой странице stackoverflow:

var rx = /Did you mean: <\/span><a href=["']?\/search.[a-zA-Z0-9=&;_-]+q=([a-zA-Z0-9+-]+)/;
rx.exec($(document.body).text());

Он находит весь текст, и так как я перехватил q переменную, он также отображает Linkin + Park ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...