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

178
Vistas
patrón de coincidencia enésimo dígito de un número usando expresiones regulares

Estoy usando una expresión regular /^(\+88)?01[3-9]\d{8}$/

 let phoneNum = "+880136486336" let validRegex = /^(\+88)?01[3-9]\d{8}$/; console.log(validRegex.test(phoneNum));

para que coincida con un patrón que coincida con algunas cadenas como

 +8801712345678 01712345678 01312349876

Funciona bien, pero también quiero hacer coincidir 01[n] donde n será 3-9 . patrón para averiguar el operador de red móvil.

quiero hacer algo como esto

si el número es 01712345678 , imprima "Operador de red A",

si el número es +8801712345678 , imprima "Operador de red A"

si el número es 01312349678 , imprima "Operador de red B"

y diferentes operadores para diferentes valores de n .

aquí 017, 013, 014, 016, 015, 019, 018 son códigos de operador móvil que quiero usar para encontrar el operador según el número de móvil.

No encuentro ninguna forma de hacerlo. ¿Cómo puedo hacerlo con expresiones regulares?

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

0

Puede capturar los tres dígitos al principio con un grupo de captura, luego usar String#match o RegExp#exec para obtener la coincidencia real y luego, si hay una coincidencia, obtener el valor del grupo y obtener el nombre del operador de un diccionario:

 const phones = ['+8801712345678','01712345678','01312349876']; const operators = {'017' : 'Operator A', '013' : 'Operator C', '014' : 'Operator B', '016' : 'Operator D', '015' : 'Operator E', '019' : 'Operator F', '018' : 'Operator G'}; const validRegex = /^(?:\+88)?(01[3-9])\d{8}$/; for (const phone of phones) { const match = validRegex.exec(phone); if (match) { console.log(phone, "=> Valid, belongs to", operators[match[1]]) } else { console.log(phone,"=> NO MATCH"); } }

Aquí,

  • ^(?:\+88)?(01[3-9])\d{8}$ : el primer grupo opcional ahora no captura y ahora hay un grupo de captura con ID = 1, (01[3-9])
  • validRegex.exec(phone) obtiene el objeto de coincidencia
  • operators[match[1]] devuelve el nombre del operador por clave.
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