function modulo11(num){
var base = 2;
var fator = 9;
var digito;
var resto;
var numeros = new Array();
var parcial = new Array();
var soma = 0;
var tam =0;
var siz =0;
var dv1=0;
if(num == ""){
limpaCampos("formBaixa");
return false
};
if(num.length < 13){
alert("Nosso Numero invalido!");
limpaCampos("formBaixa");
return false;
}
siz = num.substr(0,6);
//valida se o dominio/protoco eh valido
if(siz != '829526'){
alert("Nosso Numero invalido!");
limpaCampos("formBaixa");
return false;
}
//recebe apenas os 11 primeiros digitos para cálculo
tam = num.substr(0,11);
/*separação dos números*/
for(i=tam.length;i>0;i--){
numeros[i]=tam.substr(i-1,1); //pega cada número isoladamente
parcial[i]=numeros[i]*fator; //Efetua a multiplicação do número pelo fator
soma += parcial[i]; //soma dos digitos
if(fator==base)fator=10; //restaura o fator de multiplicação para 2
fator --;
}
/*Calculo do módulo11*/
resto = soma % 11;
if (resto < 10){
dv = resto;
}else if(resto == 10){
dv = 'x';
}
//verifica se o digito verificador eh o mesmo calculado pelo módulo11
dv1 = num.substr(12,12);
if(dv != dv1){
alert("Nosso Numero invalido!");
limpaCampos("formBaixa");
return false;
}
return true;
}
function limpaCampos(frm){
document.forms[frm].reset();
}
//passando valor campo html
<input name="numero" id="numero" type="text" size="18" maxlength="13" onBlur="modulo11(this.value)"/>
Dica para cálculo do digito verificador. Módulo 11 em javascript
E
Criado 17 de janeiro de 2008
Respostas 0
Participantes 1
Alura Git Flow: entenda o que é, como e quando utilizar Entenda o que é Git Flow, como funciona seu fluxo com branches como Master, Develop, Feature, Release e Hotfix, além de vantagens e desvantagens.
Casa do Codigo Casa do Codigo — Livros de tecnologia Livros de programacao, infraestrutura e inovacao