Como validar o novo padrão de número de celular para DDD 11?

Olá pessoal, como vai?

Tenho um sistema rodando em que se faz necessário a validação de um campo “telefone celular”. Fazia a validação usando o javascript com expressão regular. O telefone deveria ser digitado por exemplo (11)9988-1122. Funcionava certinho.

Agora vem o problema: com esse novo número adotado na região da cidade de São Paulo como faço pra fazer essa validação? Não posso deixar a validação somente pro novo padrão pois o sistema cadastra número de celulares do Brasil inteiro, e a mudança ocorreu somente na região da cidade de São Paulo. Como detectar se o telefone deve usar a expressão regular pra validar com 8 ou 9 dígitos? Poderia detectar se o DDD é igual a 11 e aplicar a nova expressão regular pra checar se o dígito adicional foi adicionado? Minha dúvida nesse caso é que não são todos os DDD 11 que foram afetados, pois a Nextel não passou pela alteração. Todo o telefone Nextel começa com o dígito 7? Não existe portabilidade para Nextel?

Gostaria de saber se alguém já implementou essa alteração.

Abraço.

Uai, testa uma. Não casou? Testa a outra. Um OU resolve seu problema.

Mais ou menos, cara. Se eu fizer essa solução de um simples “ou” vai dar erro. Por exemplo, se a pessoa colocar assim (15)98762-1234 o sistema vai dar como celular OK, o que não é verdade. Esse problema eu posso resolver ao fazer um condicional que celular com 9 dígitos só é válido pra DDD 11. Beleza, mas é ai que está minha dúvida: isso é realmente válido pra TODOS os celulares de DDD 11? Não. Nextel não entrou na mudança. Ai vem outro problema: como saber se o celular é Nextel? São todos iniciados com o dígito 7? Existe portabilidade pra Nextel?

Olá, esotu fazendo essa validação no meu sistema agora, achei os telefones que sofreram alteração nesta página:

Aí é só montar a regra pra todos esses prefixos onde DDD seja 11…

Espero ter ajudado!

[quote=paula_regina]Olá, esotu fazendo essa validação no meu sistema agora, achei os telefones que sofreram alteração nesta página:

Aí é só montar a regra pra todos esses prefixos onde DDD seja 11…

Espero ter ajudado!

[/quote]
Era exatamente isso que eu precisava. Muito obrigado, Paula! :thumbup:

Olá, simplificando as regras do link que passei acima, o código ficou assim:

function VerificarFoneSP(cel){
var cel2 = cel.substring(0,2)
var tel2 = parseInt(cel2);
var tel = parseInt(cel);

	if((tel>=5200 && tel<=5211) ||
	   (tel>=5116 && tel<=5170) ||
	   (tel>=5214 && tel<=5299) ||
	   (tel>=5329 && tel<=5398) ||
	   (tel>=5400 && tel<=5499) ||
	   (tel>=5700 && tel<=5799) ||
	   (tel>=5942 && tel<=5969) ||
	   (tel>=6011 && tel<=6086) ||
	   (tel>=6167 && tel<=6199) ||
	   (tel>=6300 && tel<=6370) ||
	   (tel>=6419 && tel<=6499) ||
	   (tel>=6500 && tel<=6570) ||
	   (tel>=6650 && tel<=6699) ||
	   (tel>=6800 && tel<=6899) ||
	   (tel>=6900 && tel<=6999) ||
	   (tel>=7011 && tel<=7099) ||
	   (tel>=7900 && tel<=7999) ||
	    tel2==62 || tel2==67 || 
	   (tel2>=71 && tel2 <=76) ||
	   (tel2>=80 && tel2 <=89) || 
	   (tel2>=91 && tel2 <=99)){
		return true;
	}else{
		return false;
	}		
}

Espero ser útil!

Pessoal,

Obrigado por indicar o link do meu blog com os prefixos.

Em tempo, Nextel não tem portabilidade e, mais que isso, é limitada pelos prefixos 5399, 77 e 78 (por enquanto).

Vou aproveitar as sugestões de máscaras de vocês pra atualizar meus formulários de contato.

Thiago Rodrigo Carneiro

valeu pelo tópico.

meu site: www.descontonetshoes.net