Created
February 16, 2009 14:03
-
-
Save javiertapia/65176 to your computer and use it in GitHub Desktop.
Validar rut mediante jQuery.Validate
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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
johuder33
Si, pero ojo.
Con esa expresión regular solo validas la estructura numérica, sin embargo no puedes saber si han ingresado un rut falso (con otro dígito verificador)