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

146
Vistas
RegEx correcto para el número de móvil danés

Encontré la siguiente expresión regular ( ^(((?+45)?)?)(\s?\d{2}\s?\d{2}\s?\d{2}\s?\d{ 2})$ ) y ( /(?:45\s)?(?:\d{2}\s){3}\d{2}/ ) para validar el número de móvil danés. Sin embargo, no coincide con la siguiente entrada, que también es un número de móvil válido:

4511760574, 004511760574

Un número de móvil solo es válido si el número es uno de los siguientes

a) sus 8 dígitos b) 8 dígitos que comienzan con 45, +45 o 0045 c) Los primeros dos dígitos después de excluir 45, +45 o 0045 deben ser los siguientes según la captura de pantalla (sección marcada con color azul):

Fuente: https://en.wikipedia.org/wiki/Telephone_numbers_in_Denmark

PD: No estoy 100% seguro si (c) está actualizado. Sin embargo, agradecería mucho una expresión regular que puedo cambiar fácilmente adaptándome si ocurre alguna actualización con (c)

A continuación se muestra el fragmento de código solo relacionado con la pregunta:

 ****HTML**** <input type="text" class="form-control num-only-with-plus rounded-0" id="phone" placeholder="Telefonnummer" required maxlength="12"> <div id="phone-number-feedback" class="invalid-feedback">Invalid Number</div> ****JS**** <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js" integrity="sha512-WFN04846sdKMIP5LKNphMaWzU7YpMyCU245etK3g/2ARYbPK9Ub18eG+ljU96qKRCWh+quCY7yefSmlkQw1ANQ==" crossorigin="anonymous"></script> <script type="text/javascript"> function validateMobileNumber(phone) { const pattern = /(?:45\s)?(?:\d{2}\s){3}\d{2}/g; return pattern.test(String(phone).toLowerCase()); } //Allow only digit and '+' sign on the input field $('.num-only-with-plus').keypress(function (e) { if (e.key != '+' && e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) { return false; } $('#phone').keyup(_.debounce(function () { const phone = $(this) if (validateMobileNumber(phone.val())) { phone.toggleValid() $('#submit_btn').prop('disabled', false) } else { phone.toggleInvalid(); $('#phone-number-feedback').text("Tjek venligst mobilnummeret igen. Er det okay?") $('#submit_btn').prop('disabled', true) } }, 500)); </script>

¡Por favor ayuda!

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

0

Repasemos los requisitos para construir un patrón: el primero y el segundo...

a) sus 8 dígitos

b) O 8 dígitos que comienzan con 45, +45 o 0045

... son bastante directos, y se pueden expresar así:

 (?:(?:00|\+)?45)?\d{8}

El corazón de esta expresión es la parte \d{8} (lo que significa 8 dígitos). Lo que va antes es la parte 'doble opcional', que significa aproximadamente ' ... precedido opcionalmente por 45 , que a su vez puede ir precedido opcionalmente por 00 o el signo + '. ?: los sigilos se utilizan para evitar que el motor de expresiones regulares capture el contenido de esos grupos de caracteres, lo que hace que un patrón sea un poco más rápido y consuma menos memoria.

Hasta ahora todo bien, pero ¿cómo podemos expresar ese tercer requisito, es decir, que hay un conjunto específico de dígitos al comienzo de la parte \d{8} ? Si bien es posible modificar la 'parte del corazón' para incluir esas cláusulas, existe una alternativa más fácil de mantener: anticipaciones positivas:

 (?=2|3[01]|4[012]|4911|5[0-3]|6[01]|[78]1|9[123])

Esta parte de un patrón solo se cumple si una posición específica en la cadena marcada va seguida de 2, 30-31, 40-42, 4911, 50-53, 60-61, 71 u 81. , o 91-93, tal como está escrito en esa página wiki. Si algo cambia, será fácil actualizar esa parte sin tocar ninguna otra parte de la expresión regular.

Así que el patrón final se parece a esto:

 ^(?:(?:00|\+)?45)?(?=2|3[01]|4[012]|4911|5[0-3]|6[01]|[78]1|9[123])\d{8}$

Y aquí está la demostración de regex101 , que puede usar para jugar tanto con patrones como con cadenas de muestra.

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