Lo que logré saber:
1ro: es un codigo que tiene 16 caracteres.
Código
function ver (cod) { if (cod.length != 16) { alert("Codigo No Valido"); return false; }
2do: cvd tiene un solo caracter
cod tiene 15.
Código
cvd = cod.substr(15,1); cod = cod.substr(0,15);
3ro: SI no es un codigo de 15 caracteres O su codigo tiene letras
Codigo No valido.
Código
if (cod.length != 15 || IsNumeric(cod) == false) { alert("Codigo No Valido"); return false; }
Todo esto me cuesta, no logró entender bien, mas las cosas que nombra
Código
for (i=0;i<cod.length;i++){ if (i%2 == 0){ tmp = cod.substring(i,i+1) * 1; } else{ tmp = cod.substring(i,i+1) * 2; } if (tmp >= 10){ tmp = tmp.toString(); tmp = tmp.substr(0,1) + tmp.substr(1,1); } chk = chk.concat(tmp); } tmp = ''; for (i=0;i<chk.length;i++){ tmp = (tmp*1) + (chk.charAt(i)*1); } tmp = tmp.toString(); chk = (tmp.substr(0,1)*1) + (tmp.substr(1,1)*1); chk = chk * 10; chk = (chk*1) - (tmp*1); cvs = chk % 10;
SI al final la variable cvs es identica a cvd
Verdadero
Sino
Codigo No valido
Código
if (cvs == cvd) { return true; } else { alert("Codigo No Valido"); return false; } }
Por las dudas codigo completo es:
Código
function ver (cod) { if (cod.length != 16){ alert("Codigo No Valido"); return false; } var codx =new Array(cod); var chk = ''; var tmp; var cvs; var cvd; cvd = cod.substr(15,1); cod = cod.substr(0,15); if (cod.length != 15 || IsNumeric(cod) == false){ alert("Codigo No Valido"); return false; } for (i=0;i<cod.length;i++){ if (i%2 == 0){ tmp = cod.substring(i,i+1) * 1; } else{ tmp = cod.substring(i,i+1) * 2; } if (tmp >= 10){ tmp = tmp.toString(); tmp = tmp.substr(0,1) + tmp.substr(1,1); } chk = chk.concat(tmp); } tmp = ''; for (i=0;i<chk.length;i++){ tmp = (tmp*1) + (chk.charAt(i)*1); } tmp = tmp.toString(); chk = (tmp.substr(0,1)*1) + (tmp.substr(1,1)*1); chk = chk * 10; chk = (chk*1) - (tmp*1); cvs = chk % 10; if (cvs == cvd){ return true; } else{ alert("Codigo No Valido"); return false; } } function IsNumeric(sText) { var ValidChars = "0123456789."; var IsNumber=true; var Char; for (i = 0; i < sText.length && IsNumber == true; i++) { Char = sText.charAt(i); if (ValidChars.indexOf(Char) == -1) { IsNumber = false; } } return IsNumber; }