javascript rut chileno validador y mascara

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript rut chileno validador y mascara相关的知识,希望对你有一定的参考价值。

maskRut(elementId) {
      ; (function (a) {
        a.fn.validCampoFranz = function (b) {
          a(this).on({
            keypress: function (a) {
              var c = a.which,
                d = a.keyCode,
                e = String.fromCharCode(c).toLowerCase(),
                f = b
                ; ((-1 != f.indexOf(e) ||
                  9 == d ||
                  (37 != c && 37 == d) ||
                  (39 == d && 39 != c) ||
                  8 == d ||
                  (46 == d && 46 != c)) &&
                  161 != c) ||
                  a.preventDefault()
            }
          })
        }
      })($)
      $(elementId).validCampoFranz('1234567890-kK')
      $(elementId).focusout(function () {
        var rut = $(this).val()
        rut = rut.replace(/-/g, '')
        var sRut1 = rut
        var nPos = 0
        var sInvertido = ''
        var sRut = ''
        for (var i = sRut1.length - 1; i >= 0; i--) {
          sInvertido += sRut1.charAt(i)
          if (i == sRut1.length - 1) sInvertido += '-'
          else if (nPos == 3) {
            sInvertido += ''
            nPos = 0
          }
          nPos++
        }
        for (var j = sInvertido.length - 1; j >= 0; j--) {
          if (sInvertido.charAt(sInvertido.length - 1) != '.')
            sRut += sInvertido.charAt(j)
          else if (j != sInvertido.length - 1) sRut += sInvertido.charAt(j)
        }
        $(this).val(sRut.toUpperCase())
      })
    }
validateRut(rut) {
      // Despejar Puntos
      let valor = rut.replace(/\./g, '');
      // Despejar Guión
      valor = valor.replace('-', '');

      // Aislar Cuerpo y Dígito Verificador
      let cuerpo = valor.slice(0, -1);
      let dv = valor.slice(-1).toUpperCase();

      // Formatear RUN
      rut = cuerpo + '-' + dv

      // Si no cumple con el mínimo ej. (n.nnn.nnn)
      if (cuerpo.length < 7) { return false; }

      // Calcular Dígito Verificador
      let suma = 0;
      let multiplo = 2;

      // Para cada dígito del Cuerpo
      for (let i = 1; i <= cuerpo.length; i++) {

        // Obtener su Producto con el Múltiplo Correspondiente
        let 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
      let 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) { return false; }

      // Si todo sale bien, eliminar errores (decretar que es válido)
      return true
    }

以上是关于javascript rut chileno validador y mascara的主要内容,如果未能解决你的问题,请参考以下文章

csharp Valida rut Chileno con c#,basado el algoritmo modulo 11

javascript HTML5智利RUT验证器

java Valida RUT con Java

PHP Php - Formatear con puntos RUT

Python - “为字段添加属性”有啥作用?

全日历过滤事件与选择