用于在单词级别检查电话号码的正则表达式
Expression regular for check phone numbers at word level
我正在尝试编写一个RegEx来测试一个号码是否有效,对于有效号码,我指的是任何与国家/地区呼叫代码匹配的号码,但也指ITU-T在建议E.164中对电话号码格式进行标准化的号码。这规定了整个数字应该是15位或更短,并以国家前缀开头,正如这里所说的,所以我这样做了:
^'+'d{2}|'d{3}([0-9])'d{7}$
但它不起作用。在我的情况下(VE号码与RegEx不匹配,因为这个号码是以另一种方式验证的),这个输入是有效的:
+1420XXXXXXXXXXX // Slovakia - X is a digit and could be more, tough, 5 minimum
001420XXXXXXXXXX // Slovakia - I've changed from + to 00
420XXXXXXXXXXXXX // Slovakia - I've removed the 00 o + but number still being valid
+40XXXXXXXXXXXXX // Romania
无效号码是指与RegEx不匹配的号码和以+58
开头的号码,因为它们来自VE
- +XX|+XXX加上12|11位数字(最少5位),其中XX|XXX是国家代码,由于最大值为15位,因此根据国家格式应为12或11位数字
有人能帮我吗?这是一个我称之为复杂
正则表达式中发生了一些奇怪的事情:
'd
是[0-9]
的简写-两者都可以使用,但我想知道它们为什么混合使用- 你要搜索的OR(
|
)是"以+XX
开头的东西",即加号和两个数字(^'+'d{2}
)或"以XXXXXXXXXXX
结尾的东西"即11个数字('d{3}([0-9])'d{7}$
)- 你需要将OR选项分组(用括号),否则它就是向左或向右的所有选项(简单地说)
^'+('d{2}|'d{3})([0-9])'d{7}$
然而,还有另一种给出出现次数的方法:{m,n}
表示出现在m
和n
之间。所以你可以说^'+'d{7,15}$
(其中7是你的最低5+最低国家代码2)。
然而,要真正做到这一点,你可能需要看看这里(https://code.google.com/p/libphonenumber/1)对所有可用的javascript电话号码进行完整的验证和格式化。
相关文章:
- 正则表达式,用于在 JavaScript 中为电话号码添加短划线
- 如何制作验证电话号码中国家/地区代码的正则表达式
- javascript 上的电话号码正则表达式
- 如何为电话号码实现实时Javascript正则表达式
- 用于替换特定电话号码的正则表达式
- 用于验证美国电话号码格式的正则表达式
- 正则表达式以验证电子邮件或电话号码.或网址
- 使用正则表达式和javascript验证美国电话号码,并使用php提交
- 正则表达式电话号码
- 用于验证美国电话号码的正则表达式
- 电话号码和手机的正则表达式;不能正常工作
- 带有自定义约束的电话号码验证正则表达式
- 用于在单词级别检查电话号码的正则表达式
- 验证电话号码的Javascript正则表达式
- 用于基于状态前缀验证电话号码的复杂正则表达式
- 需要与以下标准匹配的特定英国电话验证正则表达式
- 不包含特殊字符的电话号码正则表达式
- 澳大利亚移动号码正则表达式验证需要在号码之间允许空格
- 特定电话号码正则表达式
- 电话验证正则表达式