-
-
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!