Skip to content

Instantly share code, notes, and snippets.

@marceloleiva
Forked from javiertapia/jquery.validate.rut.js
Created September 4, 2013 19:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save marceloleiva/6442001 to your computer and use it in GitHub Desktop.
Save marceloleiva/6442001 to your computer and use it in GitHub Desktop.
function validaRut(campo){
if ( campo.length == 0 ){ return false; }
if ( campo.length < 8 ){ return false; }
campo = campo.replace('-','')
campo = campo.replace(/\./g,'')
var suma = 0;
var caracteres = "1234567890kK";
var contador = 0;
for (var i=0; i < campo.length; i++){
u = campo.substring(i, i + 1);
if (caracteres.indexOf(u) != -1)
contador ++;
}
if ( contador==0 ) { return false }
var rut = campo.substring(0,campo.length-1)
var drut = campo.substring( campo.length-1 )
var dvr = '0';
var mul = 2;
for (i= rut.length -1 ; i >= 0; i--) {
suma = suma + rut.charAt(i) * mul
if (mul == 7) mul = 2
else mul++
}
res = suma % 11
if (res==1) dvr = 'k'
else if (res==0) dvr = '0'
else {
dvi = 11-res
dvr = dvi + ""
}
if ( dvr != drut.toLowerCase() ) { return false; }
else { return true; }
}
/* La siguiente instrucción extiende las capacidades de jquery.validate() para que
admita el método RUT, por ejemplo:
$('form').validate({
rules : { rut : { required:true, rut:true} } ,
messages : { rut : { required:'Escriba el rut', rut:'Revise que esté bien escrito'} }
})
// Nota: el meesage:rut sobrescribe la definición del mensaje de más abajo
*/
// comentar si jquery.Validate no se está usando
$.validator.addMethod("rut", function(value, element) {
return this.optional(element) || validaRut(value);
}, "Revise el RUT");
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment