使用正则表达式无效的量化器错误(英国电话号码)

时间:2011-01-10 16:49:44

标签: javascript jquery regex validation

使用此正则表达式时,我收到错误“无效的量词”:

^(((\+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}))?$

事实上,我从正则表达式librairy尝试了一些英国电话号码正则表达式,但我总是得到同样的错误。如果有人可以帮助id非常感激!

2 个答案:

答案 0 :(得分:1)

如果你只是运行它,你会得到同样的错误:

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 d {4} |?(?0D {4})?)■d {3}Šd {3})|((+ 44S d {3} |?(0D {3})?) ?的d {3}šd {4})|((+ 44S d {2} |????(0D {2}))??的d {4}šd {4}))(S? #(d {4} | d {3})?)$

+量词表示one or more用于修改先前的规则,例如:

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

所以你需要量化的东西:

(((+ --> Nothing to modify

答案 1 :(得分:0)

使用此项,来自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*)