Неправильная ошибка квантификатора при использовании регулярного выражения (номера телефонов в Великобритании) - PullRequest
1 голос
/ 10 января 2011

Я получаю сообщение об ошибке «Неверный квантификатор» при использовании этого регулярного выражения:

^(((\+44\s?\d{4}|\(?0\d{4}\)?)\s?\d{3}\s?\d{3})|((\+44\s?\d{3}|\(?0\d{3}\)?)\s?\d{3}\s?\d{4})|((\+44\s?\d{2}|\(?0\d{2}\)?)\s?\d{4}\s?\d{4}))(\s?\#(\d{4}|\d{3}))?$

Infact ive попробовал несколько регулярных выражений в Великобритании по телефонным номерам из библиотеки regex, но я постоянно получаю одну и ту же ошибку. Если кто-то может помочь, я буду очень признателен!

Ответы [ 2 ]

1 голос
/ 10 января 2011

Вы получите ту же ошибку, если просто запустите это:

new RegExp("^(((+44\s?\d{4}|(?0\d{4})?)\s?\d{3}\s?\d{3})|((+44\s?\d{3}|(?0\d{3})?)\s?\d{3}\s?\d{4})|((+44\s?\d{2}|(?0\d{2})?)\s?\d{4}\s?\d{4}))(\s?#(\d{4}|\d{3}))?$");

... так что вам лучше забыть о jQuery и Form Validator, пока не получите правильное выражение.

Консоль JavaScript говорит это:

Ошибка: неверный квантификатор + 44s д {4} |? (? 0d {4})?) С d {3} ы й {3}) |? ((+ 44s д {3} |? (0d {3})?) ? ы й {3} × d {4}) |? ((+ 44s д {2} |?? (0d {2}))? ы д {4} ы й {4})) (с? # (d {4} | d {3})?) $

Квантор + означает, что one or more используется для изменения предыдущего правила, например ::

.
A+ --> One or more A's
\d+ --> One or more digits

Так что вам нужно что-то для количественной оценки:

(((+ --> Nothing to modify
0 голосов
/ 10 января 2011

Используйте это, его от http://www.regexlib.com/Search.aspx?k=uk%20tele

(\s*\(?0\d{4}\)?(\s*|-)\d{3}(\s*|-)\d{3}\s*)|(\s*\(?0\d{3}\)?(\s*|-)\d{3}(\s*|-)\d{4}\s*)|(\s*(7|8)(\d{7}|\d{3}(\-|\s{1})\d{4})\s*)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...