用户应输入国际格式的电话号码,它应始终以+开头,并且不带任何特殊字符,例如+3162503277。
我认为这个简单的正则表达式会做到这一点,但不知怎的,我必须遗漏一些东西,因为它不接受电话号码:
if (!preg_match('/^\+?[0-9]{6}$/i', $phone))
fail("Invalid phone number");
检查数字是否以+开头并且仅包含数字的方式应该是什么?
答案 0 :(得分:4)
在?
之后追加\+
,+
可选。
[0-9]{6}$
仅匹配6位数字。要匹配更多数字,您必须使用+
而不是{6}
。
如果您想要6位或更多位数,请使用{6,}
。
请尝试以下操作:
if (!preg_match('/^\+\d+$/', $phone))
fail("Invalid phone number");