以下正则表达式不适用于最多可包含15位数字的国际电话号码:
^[a-zA-Z0-9-().\s]{10,15}$
需要调整什么?
答案 0 :(得分:7)
您可能会发现以下正则表达式更有用,它基本上首先删除international phone number可以包含的所有有效特殊字符(空格,parens,+
,-
,{{1} },.
)然后计算是否至少有7位数(有效本地号码的最小长度)。
ext
答案 1 :(得分:3)
尝试添加反斜杠:
var unrealisticPhoneNumberRegex = /^[a-zA-Z0-9\-().\s]{10,15}$/;
现在它仍然不是很有用,因为你也允许任意数量的标点字符。真的,验证这样的电话号码 - 特别是如果你想让它真正用于所有可能的国际电话号码 - 可能是一个绝望的任务。我建议你选择@BalusC建议的内容。
答案 2 :(得分:1)
请参阅A comprehensive regex for phone number validation和Is there a standard for storing normalized phone numbers in a database?
答案 3 :(得分:0)
然后计算是否至少有7位数(有效本地号码的最小长度)。
世界上任何地方最短的本地号码只有两位或三位数。
有许多国家/地区没有区号。
有几个众所周知的地方有3位国家代码和4位本地号码。
谨慎地将你的限制降至6或5;以防万一。