es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Problema con una expresión regular (regex) para validar el sistema de numeración telefónica nigeriano.

Estoy trabajando en una expresión regular para que coincida con este conjunto de números:

xxxx xxx xxxx
01 xxx xxxx
+234 1 xxx xxxx
xxxx-xxx-xxxx
xxxxxxxxxxx
234 xxx xxx xxxx
234(xxx)xxx-xxxx
234(xxx)xxx xxxx
+234(xxx)xxx xxxx
+234(xxx) xxx xxxx
+234(xxx)xxx-xxxx
234xxxxxxxxxx
+234xxxxxxxxxx

Las reglas son:
– Con un máximo de 11 dígitos (cualquier combinación numérica, excluyendo las partes estáticas).
– Opcional (234) o (+234).
– 1 opcional o 01 o 234 1.
– Opción de poner en paréntesis como se especifica arriba.

Es para validar el sistema de numeración telefónica nigeriano. He buscado por todas partes y no he visto ninguna buena solución hasta ahora.

Tengo esta expresión:

/^(+)?234[0-9]?./gm

Pero no funciona adecuadamente con los que no tienen (234).

Específicamente:

xxxx xxx xxxx
01 xxx xxxx
xxxx-xxx-xxxx
xxxxxxxxxxx

¿Cómo puedo hacer que funcione? Soy bastante nuevo en las expresiones regulares, agradecería cualquier ayuda que pueda obtener.

Demo

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en tecnología especializado en regex y PCRE, sugiero el siguiente patrón de expresión regular para validar el sistema de numeración telefónica nigeriano:

    /^(\+?234-?|\(?\+?234\)?[\-\s]?)?(01)?[\d\s\-]{7,10}$/gm
    

    Explicación del patrón:

    • /^: ancla el patrón al principio de la cadena
    • (\+?234-?|\(?\+?234\)?[\-\s]?): coincide con el prefijo del número de teléfono opcional, que puede ser 234, +234, 234-, +234-, 234, (234), +234 o (234)
    • (01)?: coincide con el prefijo opcional 01
    • [\d\s\-]{7,10}: coincide con los dígitos restantes, espacios y/o guiones del número de teléfono, con una longitud de 7 a 10 caracteres
    • $/gm: ancla el patrón al final de la cadena y habilita la coincidencia global y multilineal

    Este patrón debe coincidir con todos los formatos de número especificados mientras deja fuera cualquier número inválido.

Comments are closed.