Javascript regex UK Phone - 无效组错误

时间:2015-10-01 17:11:30

标签: javascript regex

我正在尝试在javascript中使用以下正则表达式来验证英国电话号码输入:

^\(?(?:(?:0(?:0|11)\)?[\s-]?\(?|\+)44\)?[\s-]?\(?(?:0\)?[\s-]?\(?)?|0)(?:\d{2}\)?[\s-]?\d{4}[\s-]?\d{4}|\d{3}\)?[\s-]?\d{3}[\s-]?\d{3,4}|\d{4}\)?[\s-]?(?:\d{5}|\d{3}[\s-]?\d{3})|\d{5}\)?[\s-]?\d{4,5}|8(?:00[\s-]?11[\s-]?11|45[\s-]?46[\s-]?4\d))(?:(?:[\s-]?(?:x|ext\.?\s?|\#)\d+)?)$

毋庸置疑,它适用于各种正则表达式测试程序(请参阅:https://regex101.com/r/lJ1uS2/1)但是只要它被某些javascript运行并运行/实例化,就会抛出无效的组错误。看到这个小提琴:

http://jsfiddle.net/1sqjc0kb/

代码:

var reg = new RegExp("^\(?(?:(?:0(?:0|11)\)?[\s-]?\(?|\+)44\)?[\s-]?\(?(?:0\)?[\s-]?\(?)?|0)(?:\d{2}\)?[\s-]?\d{4}[\s-]?\d{4}|\d{3}\)?[\s-]?\d{3}[\s-]?\d{3,4}|\d{4}\)?[\s-]?(?:\d{5}|\d{3}[\s-]?\d{3})|\d{5}\)?[\s-]?\d{4,5}|8(?:00[\s-]?11[\s-]?11|45[\s-]?46[\s-]?4\d))(?:(?:[\s-]?(?:x|ext\.?\s?|\#)\d+)?)$","i")

在运行时检查控制台,它会产生:

  

Uncaught SyntaxError:无效的正则表达式:   / ^((:( ?: 0(:0 | 11))[S - ](| +)44??????)[S - ]((?: 0)[S-]???? ?0)(?: d {2})[S - ] d {4} [S - ] d {4} | |(?)??????d {3})[S - ] d {3- } [S - ] d {3,4} |?d {4})[S - ](?: d {5} |?d {3} [S - ] d {3})|?d {5 })[S - ] d {4,5} | 8(?:?00 [S - ] 11 [S - ] 11 | 45 [S - ] 46 [S - ] 4D))(?????? (:[S - ](?: X |转S |#)d +????))$ /?   无效的群组

通过它搜索,看不出有什么问题,没有负面的背后等等。

有什么想法吗?

干杯

0 个答案:

没有答案