首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >验证澳大利亚移动电话号码的Regex

验证澳大利亚移动电话号码的Regex
EN

Stack Overflow用户
提问于 2012-06-22 11:43:00
回答 1查看 7.7K关注 0票数 1

我已经把这个小正则表达式组合在一起来验证数字,以确保它们是正确的澳大利亚移动电话号码。我遇到的问题是新的Telstra数字不符合标准,因此它会抛出错误。

它接受的数字格式是

0421813629,0430091460等.

虽然当我们使用具有3位数5或更高的a时,它似乎会抛出一个错误,而Telstras的新数字在那个3位点中有一个7。

代码语言:javascript
复制
/^(?:\+?61|0)4 ?(?:(?:[01] ?[0-9]|2 ?[0-57-9]|3 ?[1-9]|4 ?[7-9]|5 ?[018]) ?[0-9]|3 ?0 ?[0-5])(?: ?[0-9]){5}$/

我相信这个错误与0-57-9\3有关。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-22 12:50:06

我只是帮你重写了整件事。regex将编译,但我尚未测试所有内容。正则表达式只适用于已清除空格的字符串(因为空格可以是任意的,并且不会更改电话号码的含义)。regex是基于维基百科的文章。如果有任何错误,祝你好运,如果他们决定分配备用块的话,也祝你好运。我通过将正在使用的10^7、10^6、10^5和10^4数字块分组来编写regex。

代码语言:javascript
复制
/^(?:\+?61|0)4(?:[01]\d{3}|(?:2[1-9]|3[0-57-9]|4[7-9]|5[0-15-9]|6[679]|7[3-8]|8[1478]|9[07-9])\d{2}|(?:20[2-9]|444|52[0-6]|68[3-9]|70[0-7]|79[01]|820|890|91[0-4])\d|(?:200[0-3]|201[01]|8984))\d{4}$/

如果要使regex可维护,应该为每个电话公司编写单独的字符串,然后连接字符串并调用RegExp构造函数从字符串构建regex。也许效率有点低,但你会保持理智的时候保持它。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11155523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档