Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

129
Vistas
Convierta el código PHP de dígitos de autocomprobación de Modulus 11 a JavaScript

Uso del módulo PHP de dígitos de autocomprobación Modulus 11.

http://www.eclectica.ca/howto/modulus-11-self-check.php

 function GenMOD11( $base_val ) { $result = ""; $weight = array( 2, 3, 4, 5, 6, 7, 2, 3, 4, 5, 6, 7, 2, 3, 4, 5, 6, 7, 2, 3, 4, 5, 6, 7 ); $reversed_base_val = strrev( $base_val ); for ( $i = 0, $sum = 0; $i < strlen( $reversed_base_val ); $i++ ) { $sum += substr( $reversed_base_val, $i, 1 ) * $weight[ $i ]; } $remainder = $sum % 11; switch ( $remainder ) { case 0: $result = $base_val . 0; break; case 1: $result = "n/a"; break; default: $check_digit = 11 - $remainder; $result = $base_val . $check_digit; break; } return $result; }

Atar convertir código php a JavaScript. Este es mi código, pero no da el resultado correcto:

 <script type='text/javascript'> jQuery(document).ready(function($) { function GenMOD11F( base_val ) { var result = ""; var weight = [ 2, 3, 4, 5, 6, 7, 2, 3, 4, 5, 6, 7, 2, 3, 4, 5, 6, 7, 2, 3, 4, 5, 6, 7 ]; var reversed_base_val = parseInt(base_val.toString().split('').reverse().join('')); var i, sum; for ( i = 0, sum = 0; i < reversed_base_val.length; i++ ) { sum += reversed_base_val.substring(i, 1) * weight[i]; } var remainder = sum % 11; switch ( remainder) { case 0: result = base_val+0; break; case 1: result = "n/a"; break; default: var check_digit = 11 - remainder; result = base_val.check_digit; break; } return result; } }); </script>

por ej. Al usar la función php

GenMOD11 (123240657) da 1232406573

Usando JavaScript GenMOD11 (123240657) da 123240657

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Este código debería darte el resultado requerido.

Algunas notas:

  • Convertimos la entrada a cadena inmediatamente para asegurarnos de que el resto del código funcione correctamente.
  • En lugar de invertir la cadena variable base_val, la convertimos en una matriz y la dejamos como tal, esto simplifica el resto del código.

 function GenMOD11(base_val) { base_val = String(base_val); const weight = [ 2, 3, 4, 5, 6, 7, 2, 3, 4, 5, 6, 7, 2, 3, 4, 5, 6, 7, 2, 3, 4, 5, 6, 7 ]; const reversed_base_val = [...base_val].reverse(); let sum = 0; for(let i = 0; i < reversed_base_val.length; i++) { sum += reversed_base_val[i] * weight[i]; } const remainder = sum % 11; switch ( remainder ) { case 0: return base_val + 0; case 1: return "n/a"; default: check_digit = 11 - remainder; return base_val + check_digit; } } const testInputs = [123240657, 31, 445, 5800]; for(let input of testInputs) { console.log(`GenMOD11(${input}):`, GenMOD11(input)) }
 .as-console-wrapper { max-height: 100% !important; }

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda