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
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:
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 ser234
,+234
,234-
,+234-
,234
,(234)
,+234
o(234)
(01)?
: coincide con el prefijo opcional01
[\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 multilinealEste patrón debe coincidir con todos los formatos de número especificados mientras deja fuera cualquier número inválido.