用于带扩展名的手机号码验证的正则表达式模式
Regex pattern for mobile number validation with extension
我有单独的正则表达式验证来满足我的要求,但很难将它们组合成一个。我正在验证带有国家/地区代码或以 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}$";
目前我正在检查数字是否包含#,如果是,则将其拆分并分别匹配数字和扩展部分,其中扩展名在哈希之后出现。
我的问题是现在我必须创建一个结合上述三个的正则表达式,任何人都可以帮助我,因为我在正则表达式中不好。提前谢谢。
我建议这个表达:
^'+?(?:00)?'d{12}(?:#'d{2,5})?$
查看正则表达式演示
表达式说明:
-
^
- 字符串的开头 -
'+?
- 可选加号(因为?
与+
匹配一次或零次) -
(?:00)?
- 可选00
-
'd{12}
- 正好是 12 位字符串 -
(?:#'d{2,5})?
- 可选(同样,?
匹配一次或零次)序列:-
#
- 文字哈希符号 -
'd{2,5}
- 2 到 5 位数字(您的phoneRegexExtension
)
-
-
$
- 字符串的结尾。
phoneRegexWithPlus
和phoneRegexWithZero
由第一个必填部分'+?(?:00)?'d{12}
覆盖,该部分匹配 12 到 14 位数字,开头带有可选的加号。
注意:正则表达式将根据您提供的示例输入进行调整。如果不同,请调整限制量词{12}
(可以替换为,例如,{9,14}
以匹配量化模式的 9 到 14 次出现)。
相关文章:
- _water_glass的javascript正则表达式模式
- 需要正则表达式模式的帮助
- 正则表达式模式与各种端点匹配
- JavaScript 中 URL 的正则表达式模式
- Java 与 Javascript 中的正则表达式模式
- 将Javascript正则表达式模式转换为C++std::regex的规则
- 如何从字符串构造正则表达式模式
- 城市和州正则表达式模式
- 如何在字符串上组合JS replace()方法中的3个正则表达式模式
- JavaScript中的递归正则表达式模式
- 正则表达式模式匹配特定单词
- 什么正则表达式模式将从包含的外部HTML文本中提取内部HTML
- 将特定的正则表达式模式与我的字符串匹配
- 为电子邮件开发正则表达式模式
- 将HTML5正则表达式模式转换为JavaScript正则表达式
- 我的正则表达式模式不起作用
- 将字符串中的正则表达式模式替换为依赖于匹配项的替换字符串
- 数字、字母块的正则表达式模式匹配
- Q>javascript 正则表达式模式
- 验证字符串是否为正则表达式模式的开头