对于我的需求,我有单独的正则表达式验证,但很难将它们组合在一起。我正在验证带有国家代码或以00开头的手机号码,如果它们包含由#分隔的分机号码(2-5位)
以下是有效数字的示例:
+919986040933
00919986040933
+919986040933#12
+919986040933#123
+919986040933#1234
+919986040933#12345我有以下正则表达式来验证上面的代码:
var phoneRegexWithPlus = "^((\\+)|(00))[0-9]{10,14}$";
var phoneRegexWithZero = "^((\\+)|(00))[0-9]{9,12}$";
var phoneRegexExtension = "^[0-9]{2,5}$";目前我正在检查数字是否包含#,如果是,则将其拆分,并分别匹配数字和扩展部分,其中扩展是在散列之后出现的。
我的问题是,现在我必须创建一个正则表达式结合以上三个,谁能帮助我,因为我不是很好的正则表达式。提前谢谢。
发布于 2016-07-08 22:04:39
我建议这样表达:
^\+?(?: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)
$ -字符串结束。phoneRegexWithPlus和phoneRegexWithZero包含第一个必填部分\+?(?:00)?\d{12},它匹配12到14位数字,开头有一个可选的加号。
注释:正则表达式将根据您提供的示例输入进行调整。如果不同,请调整限制量词{12} (可以替换为{9,14},以匹配9到14次量化模式)。
https://stackoverflow.com/questions/38267778
复制相似问题