RegExp в FireFox 4-5b - PullRequest
       1

RegExp в FireFox 4-5b

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

Почему это регулярное выражение не работает в FF? /^\#q=(.*){1,50}\&type=([a-zA-Z]{5})\&offset=([0-9]{1,8})$/

Во всех браузерах, кроме FF, он работает хорошо. Спасибо

Ответы [ 2 ]

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

Я думаю, что ваша проблема - (.*) в начале.Я думаю, что, по сути, он захватывает все после #q=, не оставляя ничего в строке, чтобы найти остальную часть выражения.Я бы подумал, что все браузеры интерпретировали бы регулярное выражение одинаково, но я думаю, что нет.

Попробуйте использовать что-то не жадное

 (.*?)

или просто используйте оператор границ

 (.{1,50})

Возможно, вам не нужно использовать оба.

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

Firefox 5 сообщает, что регулярное выражение слишком сложно в консоли отладки.Я думаю, что проблема вызвана этой частью, которая немного неоднозначна.Это 1-50 случаев, сколько персонажей вы хотите найти.Гораздо лучше изменить его, как предложил Алекс:

(.*){1,50}

Chrome фактически зависает при попытке сопоставить вторую строку.

В любом случае, вы можете исправить регулярное выражение, изменив его на следующеедумать, что вы хотите):

/^#q=(.){1,50}&type=([a-zA-Z]{5})&offset=([0-9]{1,8})$/

Вы можете проверить это или попробовать здесь: http://jsfiddle.net/jfriend00/wUHKV/

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