正则表达式PHP:电话号码国际格式,+

时间:2013-09-18 18:22:44

标签: php regex preg-match

用户应输入国际格式的电话号码,它应始终以+开头,并且不带任何特殊字符,例如+3162503277。

我认为这个简单的正则表达式会做到这一点,但不知怎的,我必须遗漏一些东西,因为它不接受电话号码:

if (!preg_match('/^\+?[0-9]{6}$/i', $phone)) 
    fail("Invalid phone number");

检查数字是否以+开头并且仅包含数字的方式应该是什么?

1 个答案:

答案 0 :(得分:4)

?之后追加\++可选。

[0-9]{6}$仅匹配6位数字。要匹配更多数字,您必须使用+而不是{6}。 如果您想要6位或更多位数,请使用{6,}

请尝试以下操作:

if (!preg_match('/^\+\d+$/', $phone)) 
    fail("Invalid phone number");