Ir para conteúdo

POWERED BY:

Arquivado

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

Adriano Programmer

Mascara (formatação) CPF+CNPJ+TEL+DATA+CEP

Recommended Posts

Boa tarde a todos, após uma longa pesquisa na internet, eu consegui as formatações para os campos de CPF, CNPJ, TELEFONE, DATA e CEP, com verificação de digitos (verifica se os valores digitados são números, se não for não aceita os valores...)...

 

Abaixo segue o código das funções:

 

<script>

//--->Função para a formatação dos campos...<---
function Mascara(tipo, campo, teclaPress) {
	if (window.event)
	{
		var tecla = teclaPress.keyCode;
	} else {
		tecla = teclaPress.which;
	}
 
	var s = new String(campo.value);
	// Remove todos os caracteres à seguir: ( ) / - . e espaço, para tratar a string denovo.
	s = s.replace(/(\.|\(|\)|\/|\-| )+/g,'');
 
	tam = s.length + 1;
 
	if ( tecla != 9 && tecla != 8 ) {
		switch (tipo)
		{
		case 'CPF' :
			if (tam > 3 && tam < 7)
				campo.value = s.substr(0,3) + '.' + s.substr(3, tam);
			if (tam >= 7 && tam < 10)
				campo.value = s.substr(0,3) + '.' + s.substr(3,3) + '.' + s.substr(6,tam-6);
			if (tam >= 10 && tam < 12)
				campo.value = s.substr(0,3) + '.' + s.substr(3,3) + '.' + s.substr(6,3) + '-' + s.substr(9,tam-9);
		break;
 
		case 'CNPJ' :
 
			if (tam > 2 && tam < 6)
				campo.value = s.substr(0,2) + '.' + s.substr(2, tam);
			if (tam >= 6 && tam < 9)
				campo.value = s.substr(0,2) + '.' + s.substr(2,3) + '.' + s.substr(5,tam-5);
			if (tam >= 9 && tam < 13)
				campo.value = s.substr(0,2) + '.' + s.substr(2,3) + '.' + s.substr(5,3) + '/' + s.substr(8,tam-8);
			if (tam >= 13 && tam < 15)
				campo.value = s.substr(0,2) + '.' + s.substr(2,3) + '.' + s.substr(5,3) + '/' + s.substr(8,4)+ '-' + s.substr(12,tam-12);
		break;
 
		case 'TEL' :
			if (tam > 2 && tam < 4)
				campo.value = '(' + s.substr(0,2) + ') ' + s.substr(2,tam);
			if (tam >= 7 && tam < 11)
				campo.value = '(' + s.substr(0,2) + ') ' + s.substr(2,4) + '-' + s.substr(6,tam-6);
		break;
 
		case 'DATA' :
			if (tam > 2 && tam < 4)
				campo.value = s.substr(0,2) + '/' + s.substr(2, tam);
			if (tam > 4 && tam < 11)
				campo.value = s.substr(0,2) + '/' + s.substr(2,2) + '/' + s.substr(4,tam-4);
		break;
		
		case 'CEP' :
			if (tam > 5 && tam < 7)
				campo.value = s.substr(0,5) + '-' + s.substr(5, tam);
		break;
		}
	}
}

//--->Função para verificar se o valor digitado é número...<---
function digitos(event){
	if (window.event) {
		// IE
		key = event.keyCode;
	} else if ( event.which ) {
		// netscape
		key = event.which;
	}
	if ( key != 8 || key != 13 || key < 48 || key > 57 )
		return ( ( ( key > 47 ) && ( key < 58 ) ) || ( key == 8 ) || ( key == 13 ) );
	return true;
}
</script>

 

 

Chame as funções no input que você precisar, obs:para os campos como CPF, CNPJ, TEL, etc... Use maxlength para determinar quantos caracteres você poderá digitar no campo...

Segue abaixo o exemplo utilizando as duas funções (formatar e verificar se é número):

 

<input name="cep" type="text" id="cep" maxlength="9" size="8" onKeyPress="return digitos(event, this);" onKeyUp="Mascara('CEP',this,event);">

 

Espero que eu tenha ajudado...

Boa tarde a todos e qualquer dúvida só postar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito bom, suas mascaras.

Caso alguém precise da mascara de hora.

case 'HORA' :
			if (tam > 2 && tam < 4)
				campo.value = s.substr(0,2) + ':' + s.substr(2, tam);
			if (tam > 4 && tam < 11)
				campo.value = s.substr(0,2) + ':' + s.substr(2,2) + ':' + s.substr(4,tam-4);

Flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloquei esses scripts num arquivo e nomeei-o de mascaras.js, porém não esta funcionando. inseri no início do arquivo php:

<script type="text/javascript" src="mascaras.js"></script>
inseri:
<script language="JavaScript" src="mascaras.js"></script>
também não deu certo. o input estou usando o mesmo q ta aki no post ou seja:
<input name="cep" type="text" id="cep" maxlength="9" size="8" onKeyPress="return digitos(event, this);" onKeyUp="Mascara('CEP',this,event);">
Agora, se eu colocar o código dentro do arquivo php da certo, porém, gostaria de usá-lo fora em um arquivo js.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Adriano,

Mais um código que vai para o meu Hall da Fama de códigos úteis rss e esse vai com título de "muitíssimo útil" rsssss

 

Eu fiz uma pequena alteração nele, caso alguém se interesse, eu alterei para que o usuário não consiga digitar mais que a quantidade de caracteres que tem o campo. por exemplo, o cep saum 5 numeros e um traço portanto ele não consegue digitar mais q 6 caracteres e assim sucessivamente, caso não queiram limitar o tamanho do input do HTML por motivos de estética ou esquecimento mesmo.

 

É apenas um plus.

 

Absss

function Mascara(tipo, campo, teclaPress) {
	if (window.event)
	{
		var tecla = teclaPress.keyCode;
	} else {
		tecla = teclaPress.which;
	}

	var s = new String(campo.value);
	// Remove todos os caracteres à seguir: ( ) / - . e espaço, para tratar a string denovo.
	s = s.replace(/(\.|\(|\)|\/|\-| )+/g,'');

	tam = s.length + 1;

	if ( tecla != 9 && tecla != 8 ) {
		switch (tipo)
		{
		case 'CPF' :
			if (tam > 3 && tam < 7)
				campo.value = s.substr(0,3) + '.' + s.substr(3, tam);
			if (tam >= 7 && tam < 10)
				campo.value = s.substr(0,3) + '.' + s.substr(3,3) + '.' + s.substr(6,tam-6);
			if (tam >= 10 && tam < 12)
				campo.value = s.substr(0,3) + '.' + s.substr(3,3) + '.' + s.substr(6,3) + '-' + s.substr(9,tam-9);
			if (tam > 12)				
				campo.value = campo.value.substr(0,campo.value.length-1);							
		break;

		case 'CNPJ' :

			if (tam > 2 && tam < 6)
				campo.value = s.substr(0,2) + '.' + s.substr(2, tam);
			if (tam >= 6 && tam < 9)
				campo.value = s.substr(0,2) + '.' + s.substr(2,3) + '.' + s.substr(5,tam-5);
			if (tam >= 9 && tam < 13)
				campo.value = s.substr(0,2) + '.' + s.substr(2,3) + '.' + s.substr(5,3) + '/' + s.substr(8,tam-8);
			if (tam >= 13 && tam < 15)
				campo.value = s.substr(0,2) + '.' + s.substr(2,3) + '.' + s.substr(5,3) + '/' + s.substr(8,4)+ '-' + s.substr(12,tam-12);
			if (tam > 15)				
				campo.value = campo.value.substr(0,campo.value.length-1);			
				
		break;

		case 'TEL' :
			if (tam > 2 && tam < 4)
				campo.value = '(' + s.substr(0,2) + ') ' + s.substr(2,tam);
			if (tam >= 7 && tam < 11)
				campo.value = '(' + s.substr(0,2) + ') ' + s.substr(2,4) + '-' + s.substr(6,tam-6);
			if (tam > 11)				
				campo.value = campo.value.substr(0,campo.value.length-1);			
		break;

		case 'DATA' :
			if (tam > 2 && tam < 4)
				campo.value = s.substr(0,2) + '/' + s.substr(2, tam);
			if (tam > 4 && tam < 11)
				campo.value = s.substr(0,2) + '/' + s.substr(2,2) + '/' + s.substr(4,tam-4);
			if (tam > 9)				
				campo.value = campo.value.substr(0,campo.value.length-1);			
				
		break;
		
		case 'CEP' :
			if (tam > 5 && tam < 7)
				campo.value = s.substr(0,5) + '-' + s.substr(5, tam);
			if (tam > 9)				
				campo.value = campo.value.substr(0,campo.value.length-1);			
				
		break;
		}
	}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Putz estava precisando desse codigo..

 

Eu estava usando varios scripts diferentes para telefone, cnpj, cep.

 

Esse serve para todos.

 

PERFEITOOO, TESTADO E APROVADO

 

Post de 2008 kkkkkkkkkkk

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.