mascaras.js
4.43 KB
function validaCaracterMascara(masc,caracter,posicao){var caracterMasc=masc.charAt(posicao);var expRegCharNumber=new RegExp("[a-zA-Z0-9]","ig");if(expRegCharNumber.test(caracterMasc)){if(isNaN(caracterMasc)){var expValReg=new RegExp("[a-"+caracterMasc.toLowerCase()+"A-"+caracterMasc.toUpperCase()+"]","ig")}else{var expValReg=new RegExp("[0-"+caracterMasc+"]","ig")}return expValReg.test(caracter)}else{return false}}function mascaraDinamico(mascara,campo,evento){var expReg=new RegExp("[^a-zA-Z0-9]","ig");var expRegTmp;var arExecExp=expReg.exec(mascara);var stCampoNovo="";if(arExecExp){var stMascaraTmp=mascara.substr(arExecExp.index+1)}var campoMasc=filtraAlfaNumerico(campo.value);var inContIndex=1;var inCont=0;var flagIndex=true;var whichCode=(window.Event)?evento.which:evento.keyCode;if(whichCode==13){return true}if(whichCode==0){return true}if(whichCode==1){return true}if(whichCode==2){return true}if(whichCode==3){return true}if(whichCode==4){return true}if(whichCode==5){return true}if(whichCode==6){return true}if(whichCode==7){return true}if(whichCode==8){return true}if(whichCode==9){return true}if(whichCode==10){return true}while(inCont<campoMasc.length&&stCampoNovo.length<mascara.length){caracter=campoMasc.substr(inCont,1);if(validaCaracterMascara(mascara,caracter,inContIndex-1)){stCampoNovo+=caracter;expRegTmp=new RegExp("[^a-zA-Z0-9]","ig");if(expRegTmp.test(stMascaraTmp)||flagIndex){if(arExecExp&&arExecExp.index==inContIndex){stCampoNovo+=arExecExp[0];arExecExp=expReg.exec(mascara);inContIndex++;stMascaraTmp=mascara.substr(inContIndex);flagIndex=false}}}inCont++;inContIndex++}campo.value=stCampoNovo;return false}function mascaraCPF(campo,evento){return mascaraDinamico("999.999.999-99",campo,evento)}function mascaraCNPJ(campo,evento){return mascaraDinamico("99.999.999/9999-99",campo,evento)}function mascaraCEP(campo,evento){return mascaraDinamico("99999-999",campo,evento)}function mascaraData(campo,evento){return mascaraDinamico("99/99/9999",campo,evento)}function mascaraHora(campo,evento){return mascaraDinamico("29:59",campo,evento)}function mascaraFloat(campo,decimais,evento){var virgPos=campo.value.search(",");if(evento.keyCode==188){if((campo.value.length-(decimais+1))>virgPos){campo.value=campo.value.replace(",","")}else{if(campo.value.length==1){campo.value="0,"}}}else{var arMoeda=campo.value.split(",");var inMoeda=inteiroParaMilhar(arMoeda[0]);if(typeof (arMoeda[1])!="undefined"){if(inMoeda.length==0){inMoeda="0"}campo.value=inMoeda+","+arMoeda[1].substr(0,decimais)}else{campo.value=inMoeda}}}function preencheComZeros(mascara,campo,posicao){var expReg=new RegExp("[a-zA-Z0-9]","ig");var stComplemento="";var inInicio=0;var inFim=0;if(campo.value!=""){if(posicao=="E"){inInicio=0;inFim=mascara.length-campo.value.length}else{inInicio=campo.value.length;inFim=mascara.length}for(var inCount=inInicio;inCount<inFim;inCount++){if(mascara.charAt(inCount).search(expReg)==-1){stComplemento=stComplemento+mascara.charAt(inCount)}else{stComplemento=stComplemento+"0"}}if(posicao=="E"){campo.value=stComplemento+campo.value}else{campo.value=campo.value+stComplemento}}}function preencheComZerosPelaMascara(valor,mascara){var expReg=new RegExp("[^a-zA-Z0-9]","ig");var expRegAN=new RegExp("[a-zA-Z0-9]","ig");mascara=mascara.replace(expRegAN,"0");var arMascara=mascara.split(expReg);var arValor=valor.split(expReg);var arSeparador=mascara.replace(expRegAN,"").split("");var inCont=0;var stValorPreenchido="";var stTmp="";do{if(arValor[inCont]){stTmp=arValor[inCont];if(stTmp.length>arMascara[inCont].length){if(arValor[inCont+1]==undefined){arValor[inCont+1]=""}arValor[inCont+1]=stTmp.substr(arMascara[inCont].length)+arValor[inCont+1];stTmp=stTmp.substr(0,arMascara[inCont].length)}}else{stTmp=""}stValorPreenchido+=arMascara[inCont].substr(0,arMascara[inCont].length-stTmp.length);stValorPreenchido+=stTmp;if(arSeparador[inCont]){stValorPreenchido+=arSeparador[inCont]}inCont++}while(inCont<arMascara.length);return stValorPreenchido}function preencheProcessoComZeros(valor,mascara,exercicio){var arSeparador=mascara.replace(RegExp("[0-9a-zA-Z]","ig"),"").split("");if(!RegExp("[^0-9a-zA-Z]").test(valor)){valor+=arSeparador[0]+exercicio}else{if(parseInt(mascara.length)-parseInt(valor.length)==parseInt(exercicio.length)){valor+=exercicio}}return preencheComZerosPelaMascara(valor,mascara)}function verificaHora(hora){if(hora.value.length==1){hora.value=hora.value+"0:00"}else{if(hora.value.length==3){hora.value=hora.value+"00"}else{if(hora.value.length==4){hora.value=hora.value+"0"}}}};