首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带分机的移动号码验证的正则表达式模式

带分机的移动号码验证的正则表达式模式
EN

Stack Overflow用户
提问于 2016-07-08 21:20:58
回答 1查看 208关注 0票数 3

对于我的需求,我有单独的正则表达式验证,但很难将它们组合在一起。我正在验证带有国家代码或以00开头的手机号码,如果它们包含由#分隔的分机号码(2-5位)

以下是有效数字的示例:

代码语言:javascript
复制
+919986040933
00919986040933
+919986040933#12
+919986040933#123
+919986040933#1234
+919986040933#12345

我有以下正则表达式来验证上面的代码:

代码语言:javascript
复制
var phoneRegexWithPlus = "^((\\+)|(00))[0-9]{10,14}$";
var phoneRegexWithZero = "^((\\+)|(00))[0-9]{9,12}$";
var phoneRegexExtension = "^[0-9]{2,5}$";

目前我正在检查数字是否包含#,如果是,则将其拆分,并分别匹配数字和扩展部分,其中扩展是在散列之后出现的。

我的问题是,现在我必须创建一个正则表达式结合以上三个,谁能帮助我,因为我不是很好的正则表达式。提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-07-08 22:04:39

我建议这样表达:

代码语言:javascript
复制
^\+?(?:00)?\d{12}(?:#\d{2,5})?$

请参阅regex demo

表达式解释

  • ^ - string
  • \+?的开始-一个可选的加号(因为times)
  • (?:00)?
  • \d{12} 1或0匹配)-一个可选的string
  • (?:#\d{2,5})? -恰好12位的00 -一个可选的(同样,?匹配1次或0次的)序列:
    • # -文字散列symbol
    • \d{2,5} -2到5位(您的phoneRegexExtension)

  • $ -字符串结束。

phoneRegexWithPlusphoneRegexWithZero包含第一个必填部分\+?(?:00)?\d{12},它匹配12到14位数字,开头有一个可选的加号。

注释:正则表达式将根据您提供的示例输入进行调整。如果不同,请调整限制量词{12} (可以替换为{9,14},以匹配9到14次量化模式)。

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

https://stackoverflow.com/questions/38267778

复制
相关文章

相似问题

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