Pab*_*rns 5 regex phone-number
我为我的国家的电话找到了一个正则表达式,但我缺少一些东西。
这里的规则是: (Area Code) Prefix - Sufix
我想我可以用 OR “|” 链接 3 个简单的正则表达式 像这样:
/(\(?\d{3}\)?[- .]?\d{4}[- .]?\d\d\d\d)|(\(?\d{4}\)?[- .]?\d{3}[- .]?\d\d\d\d)|(\(?\d{5}\)?[- .]?\d{2}[- .]?\d\d\d\d)/
Run Code Online (Sandbox Code Playgroud)
我做错的事情是\d\d\d\d后缀不只匹配 4 位数字,例如:(011) 4740-5000 这是一个有效的电话号码,工作正常,但如果输入额外的数字,它也会作为有效的数字返回电话号码,即:(011) 4740-5000000000
您应该使用^and$来匹配整个字符串
例如,^\d{4}$将精确匹配 4 位数字,不多不少。
这是完整的正则表达式模式
^((\(?\d{3}\)? \d{4})|(\(?\d{4}\)? \d{3})|(\(?\d{5}\)? \d{2}))-\d{4}$
Run Code Online (Sandbox Code Playgroud)
根据您的正则表达式模式分隔符可以是-,.或单个空格,然后尝试
^((\(?\d{3}\)?[-. ]?\d{4})|(\(?\d{4}\)?[-. ]?\d{3})|(\(?\d{5}\)?[-. ]?\d{2}))[-. ]?\d{4}$
Run Code Online (Sandbox Code Playgroud)