我对我的要求进行了单独的正则表达式验证,但很难将它们组合在一起。 我正在使用国家/地区代码验证手机号码或以00开头,如果它们包含分机号码(2-5位),则由#
分隔以下是有效数字的示例:
var phoneRegexWithPlus = "^((\\+)|(00))[0-9]{10,14}$";
var phoneRegexWithZero = "^((\\+)|(00))[0-9]{9,12}$";
var phoneRegexExtension = "^[0-9]{2,5}$";
我有以下正则表达式来验证上述内容:
{{1}}
目前我正在检查数字是否包含#,如果是,则将其拆分并分别匹配数字和扩展部分,其中扩展是哈希后的扩展。
我现在的问题是我必须创建一个结合上述三个的正则表达式,任何人都可以帮助我,因为正则表达式不好。 提前谢谢。
答案 0 :(得分:1)
我建议这个表达:
^\+?(?:00)?\d{12}(?:#\d{2,5})?$
请参阅regex demo
表达式解释:
^
- 字符串开头\+?
- 可选加号(?
匹配+
一次或零次)(?: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次)。