-
-
Save reggiegutter/5516382 to your computer and use it in GitHub Desktop.
<?php | |
// Função para checar número de telefone | |
function phone_check($phone) | |
{ | |
$exp_regular = '/^(\(11\) (9\d{4})-\d{4})|((\(1[2-9]{1}\)|\([2-9]{1}\d{1}\)) [5-9]\d{3}-\d{4})$/'; | |
$ret = preg_match($exp_regular, $phone); | |
if($ret === 1) | |
{ | |
echo 'Número de telefone válido'; | |
return TRUE; | |
} | |
else | |
{ | |
echo 'Número de telefone inválido'; | |
return FALSE; | |
} | |
} | |
// Essa expressão é feita mais para telefones celulares. | |
// Você pode adicionar suporte para todos os números de telefone, ou criar outro regex com base nesse. | |
// Se alguém encontrar uma forma de melhorá-lo ou se alguma coisa estiver errada, favor informa! | |
// testes | |
preg_match($exp_regular, '(11) 92222-2222'); // OK | |
preg_match($exp_regular, '(12) 8222-2222'); // OK | |
preg_match($exp_regular, '(11) 82222-2222'); // NOT OK | |
preg_match($exp_regular, '(12) 92222-2222'); // NOT OK | |
preg_match($exp_regular, '(11) 3222-2222'); // NOT OK | |
// Espero ter ajudado! | |
// Abraço a todos! | |
?> |
Fiz uma modificacao para pegar do ddd 11 ao 28, e para testar sem espaço apos o ddd,
/^(([1-2][0-8])(9\d{4})-\d{4})|(((1[2-9]{1})|([2-9]{1}\d{1}))[5-9]\d{3}-\d{4})$/
Segue mais um regex aqui para validar SOMENTE números de celular
Esse valida também o 9º dígito nos DDDs de SP, RJ e ES.
/^(?:[12][1-9]9[2-9]|[3-9][1-9][5-9])[0-9]{7}$/
Os requisitos são:
-
passar somente números sem espaços ou qualquer outro caractere não-numérico.
Dica: preg_replace('/[^0-9]/', '', $telefone); -
sempre passar com o DDD.
Dica: preg_replace('/^([0-9]{8})$/', '41$1', $numero);
Fiz um validando todos os DDD do brasil, nesse formato = 99999999999
^((1[1|2|3|4|5|6|7|8|9])|(2[1|2|4])|(3[1|2|3|4|5|7|8])|(4[1|2|3|4|5|6])|(5[1|3|4|5])|(6[1|2|3|4|5|6|7])|(7[1|3|4|5|7|9])|(8[1|2|3|5|6|7|8|9])|(9[1|2|3|4|5|6|7|8|9]))(9)[1-9]{8}$
Boa tarde, criei esses dois Regex para telefone celular:
^\d{2}\9\d{4}\d{4}$
Este aceita somente os numeros (incluso DDD e 9 inicial).
EX: 51982316433
^(?\d{2})?\9\d{4}-?\d{4}$
Este aceita o telefone com ( ) e - .
EX: (51)98231-6433
E para validar a implementação da Anatel em 2013 que incluem os DDDs de 11 ao 28? Link: http://goo.gl/pgCncI
Passei mais de uma hora lendo sobre Regex mais não consegui nada.
Eu imaginei assim:
/^(((11-28)) (9\d{4})-\d{4})|(((1[2-9]{1})|([2-9]{1}\d{1})) [5-9]\d{3}-\d{4})$/
Poderia liberar uma nova atualização?
Grato!