2015-04-17 2 views
1
$phone = 841657196818; 
$phone = 841267337430; 

if(preg_match("/^[1-9]{2}[0-9]{8|9|10}$/", $phone)) { 
    echo "$phone Valid"; 
} else { 
    echo "$phone Invalid."; 
} 

Почему 841657196818 действует, но 841267337430 не действует?preg_match Ошибка недействительный номер телефона

+0

Я никогда не видел '{8 | 9 | 10}' является то, что предполагают, чтобы позволить 8-10 числа в диапазоне от 0 до 9? – chris85

+0

точно ... я думаю, что регулярное выражение проверяет '8',' 9' или '10' в конце –

+0

Это либо предполагается, что вы проверяете 8, 9 или 10; или от 8 до 10 отдельных номеров. Не уверен, что, я думаю, 8-10 номеров. – chris85

ответ

4

AFAIK {8|9|10} не является синтаксически правильным. Вы хотите {8,10}, что в основном означает «от 8 до 10».

Исправленный синтаксис: ^[1-9]{2}[0-9]{8,10}$.

Example

Смежные вопросы