Created
May 4, 2013 05:53
-
-
Save reggiegutter/5516382 to your computer and use it in GitHub Desktop.
Regular expression (Regex) para validar números de telefones celulares para o Brasil, incluindo os novos números de celulares para São Paulo - que agora possuem o número 9 no início da primeira seção após o DDD (Exemplo: (11) 92222-2222).
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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);