Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

186
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!