javascript HTML5智利RUT验证器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript HTML5智利RUT验证器相关的知识,希望对你有一定的参考价值。

<!doctype html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <title>Validador de RUT HTML5</title>
</head>
<body>
    <form>
        <input type="text" id="rut" name="rut" required oninput="checkRut(this)" placeholder="Ingrese RUT">
        <button type="submit">Validar RUT y Enviar Form</button>
        <script src="validarRUT.js"></script>
    </form>
</body>
</html>
function checkRut(rut) {
    // Despejar Puntos
    var valor = rut.value.replace('.','');
    // Despejar Guión
    valor = valor.replace('-','');
    
    // Aislar Cuerpo y Dígito Verificador
    cuerpo = valor.slice(0,-1);
    dv = valor.slice(-1).toUpperCase();
    
    // Formatear RUN
    rut.value = cuerpo + '-'+ dv
    
    // Si no cumple con el mínimo ej. (n.nnn.nnn)
    if(cuerpo.length < 7) { rut.setCustomValidity("RUT Incompleto"); return false;}
    
    // Calcular Dígito Verificador
    suma = 0;
    multiplo = 2;
    
    // Para cada dígito del Cuerpo
    for(i=1;i<=cuerpo.length;i++) {
    
        // Obtener su Producto con el Múltiplo Correspondiente
        index = multiplo * valor.charAt(cuerpo.length - i);
        
        // Sumar al Contador General
        suma = suma + index;
        
        // Consolidar Múltiplo dentro del rango [2,7]
        if(multiplo < 7) { multiplo = multiplo + 1; } else { multiplo = 2; }
  
    }
    
    // Calcular Dígito Verificador en base al Módulo 11
    dvEsperado = 11 - (suma % 11);
    
    // Casos Especiales (0 y K)
    dv = (dv == 'K')?10:dv;
    dv = (dv == 0)?11:dv;
    
    // Validar que el Cuerpo coincide con su Dígito Verificador
    if(dvEsperado != dv) { rut.setCustomValidity("RUT Inválido"); return false; }
    
    // Si todo sale bien, eliminar errores (decretar que es válido)
    rut.setCustomValidity('');
}

以上是关于javascript HTML5智利RUT验证器的主要内容,如果未能解决你的问题,请参考以下文章

javascript rut chileno validador y mascara

html 使用JavaScript进行即时HTML5表单验证

如何从JavaScript函数手动显示HTML5验证消息?

javascript 自定义事件的基本HTML5模式验证(模糊等)

Validar rut chileno公司

验证后如何使用 JavaScript 和 HTML5 将图像放在单选按钮上