Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Branndon Arruda

Máscara de Telefone com 8 e 9 digitos

Recommended Posts

Fala pessoal, tudo bem ?

 

Em relação a máscara para telefone com 9 digitos alguém já tem alguma solução? O que eu venho procurando é uma máscara que quando o usuário digitar normal um telefone com 8 digitos fique assim (99) 9999-9999 e quando o usuario digitar 9 digitos [novo formato DDD 11] fique assim (99) 99999-9999, eu tenho o seguinte codigo aqui:

 

function telefone(v){
v=v.replace(/\D/g,"")                 //Remove tudo o que não é dígito
v=v.replace(/^(\d\d)(\d)/g,"($1) $2") //Coloca parênteses em volta dos dois primeiros dígitos
v=v.replace(/(\d{4})(\d)/,"$1-$2")    //Coloca hífen entre o quarto e o quinto dígitos
return v
}

 

 

Já existe um tópico aqui no forúm, mas ainda não está resolvido => http://www.guj.com.br/java/266551-mascara-telefone-mudanca-para-aceitar-9-digitos

 

qualquer ajuda será bem-vinda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal consegui esse codigo fuçando por aii, bom funcionou no exemplo que ele deu, só tem um erro qee achei, tipo depois do DDD11 se tiver 9 mascara vem com 9 digitos, mas o codigo liberaq isso para 8 e 7 tambem.

 

alguem qee entenda de java poderia pegar essa idéia e reescrever esse codigo o codigo é esse

var options = {onKeyPress: function(phone, e){

   $target = "." + $(e.target).closest('input').attr('class');

   if(/(\(11\) 9?(9|8|7)).+/i.test(phone)){
     $($target).mask('(00) 00000-0000', options);
   } else {
     $($target).mask('(00) 0000-0000', options);         
   }
}};

$('.sao_paulo_phone_number').mask('(00) 0000-0000', options);

 

 

aproveitando o topic queria saber se alguem poderia converter para ficar igual a esse que uso, esse tem que usar a CLASS para usar e minha class to usando para colocar o input padão do site queria usar o onkey press igual a esse função que vou postar (a que estou usando atualmente)

//adiciona mascara ao telefone
function MascaraTelefone(tel){  
       if(mascaraInteiro(tel)==false){
               event.returnValue = false;
       }       
       return formataCampo(tel, '(00)0000-0000', event);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

oi @Branndon, eu fiz uma adaptação dessa ER ai para funcionar o nono dígito:

 

http://wbruno.com.br/2012/08/02/mascara-campo-de-telefone-em-javascript-com-regex-nono-digito-telefones-sao-paulo/

Compartilhar este post


Link para o post
Compartilhar em outros sites
A seguir. Somente números + DDD + tel 8 "OU" 9 dígitos + tratamento para "ç e Ç"


By: †‡Falcão‡†


js: Assinatura(NomeCampo)


function telefone(a) { $(a).keyup(function (f) { if ((f.keyCode > 64 && f.keyCode < 91) || f.keyCode == 186) { var d = (String.fromCharCode(f.keyCode)).toUpperCase(); var c = (a.value.charAt(a.value.length - 1)).toUpperCase(); if (d == c || c == "Ç" || c == "ç") { a.value = a.value.substring(0, (a.value.length - 1)) } } }); separador = "("; separador1 = ")"; separador2 = "-"; conjunto1 = 0; conjunto2 = 3; conjunto3 = 8; if (a.value.length < 13) { if (a.value.length == conjunto1) { a.value = a.value + separador } if (a.value.length == 4 && a.value.indexOf(")") == -1) { a.value = a.value.substring(0, 3) + separador1 + a.value.substr(3, 1) } if (a.value.length == conjunto2) { $("html").keyup(function (b) { if (b.keyCode == 8) { } else { if (a.value.length == conjunto2) { a.value = a.value + separador1 } } }) } } if (a.value.length == 13 && a.value.indexOf("-") == 9) { a.value = a.value.replace("-", ""); a.value = a.value.substring(0, 8) + separador2 + a.value.substr(8, 4) } else { if (a.value.length == 12) { a.value = a.value.replace("-", ""); a.value = a.value.substring(0, 8) + separador2 + a.value.substr(8, 4) } else { if (a.value.length > 13) { a.value = a.value.replace("-", ""); a.value = a.value.substring(0, 9) + separador2 + a.value.substr(9, 4) } } } };

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.