1

Users should enter a phone number in international format, it should always start with a +, and without any special chars, so for example +3162503277.

I thought this simple regex would do it, but somehow I must be missing something, because it doesn't accept the phone number:

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

What should be the way to check if the number starts with a + and further only contains numbers?

4

1 に答える 1

5

後に追加するとオプション?になります。\++

[0-9]{6}$6 桁のみに一致します。より多くの数字を一致させるには、+isntead ofを使用する必要があり{6}ます。6 桁以上が必要な場合は、 を使用します{6,}

以下を試してください:

if (!preg_match('/^\+\d+$/', $phone)) 
    fail("Invalid phone number");
于 2013-09-18T18:24:31.570 に答える