viernes, 11 de junio de 2010

Mas un validador de RUT en javascript

Buscando por la red encontré varios validadores de RUT, pero los encontré amorfos y con mucho código extra. Como soy niubi en esto, espero vuestros comentarios y recomendaciones.

// String aceptado debe incluir solo numeros y "k"
function rut_check(rut){
var sum = 0;
var tail = rut.slice(-1);

for(f = 2, i = 0, j = rut.length - 2; i < rut.length - 1; ++i, --j, ++f){
f = (f > 7) ? 2 : f;
sum += f * rut.substr(j, 1);
}

digit = 11 - (sum % 11);
digit = (digit == 11) ? 0 : digit;
digit = (digit == 10) ? "k" : digit;

return digit.toString() == tail;
}


Para terminar, condimente con este pedazo de código:

// Funcion para permitir solo entrada numerica o k
function rut_validkey(e){
var key;

if(window.event) e = window.event // Windows Support
key = e.keyCode ? e.keyCode : e.which; // Firefox & Chromium support

// control keys
if(key==8 || key==9 || key==13 || key==27 || (key > 36 && key < 41))
return true;

if(key == 107 || key == 75 || (key > 47 && key < 58))
return true;
return false;
}