telephone regular phone number international how example argentina regex phone-number

regular - Validación de teléfono regex



regex phone number javascript (11)

Estoy usando este patrón para verificar la validación de un número de teléfono

^[0-9/-/+]{9,15}$

Funciona para 0771234567 y +0771234567 , pero quiero que funcione para 077-1234567 y +077-1234567 y + 077-1-23-45-67 y + 077-123-45-6-7

¿Qué debería cambiar en el patrón?


Considerar:

^/+?[0-9]{3}-?[0-9]{6,12}$

Esto solo permite + al comienzo; requiere 3 dígitos, seguido de un guión opcional, seguido de 6-12 dígitos más.

Tenga en cuenta que la expresión regular original permite ''números de teléfono'' como 70+12---12+92 , que es un poco más liberal de lo que probablemente tenía en mente.

La pregunta fue enmendada para agregar:

+ 077-1-23-45-67 y + 077-123-45-6-7

Ahora es probable que necesite usar un sistema regex que soporte alternativas:

^/+?[0-9]{3}-?([0-9]{7}|[0-9]-[0-9]{2}-[0-9]{2}-[0-9]{2}|[0-9]{3}-[0-9]{2}-[0-9]-[0-9])$

La primera alternativa son siete dígitos; el segundo es 1-23-45-67; el tercero es 123-45-6-7. Todos ellos comparten el plus + más opcional seguido de 3 dígitos y un prefijo opcional de tablero.

El comentario a continuación menciona otro patrón:

+ 077-12-34-567

No está del todo claro cuál debería ser el patrón general, tal vez uno o más dígitos separados por guiones; dígitos al frente y atrás?

^/+?[0-9]{3}-?[0-9](-[0-9]+)+$

Esto permitirá el prefijo ''+ 077-'', seguido de cualquier secuencia de dígitos alternando con guiones, con al menos un dígito entre cada guión y ningún guión al final.


Esta expresión regular coincide con cualquier número con el formato común 1- (999) -999-9999 y cualquier elemento intermedio. Además, la expresión regular permitirá llaves o no llaves y separaciones con punto , espacio o guión . "^([01][- .])?(/(/d{3}/)|/d{3})[- .]?/d{3}[- .]/d{4}$"


Lo intenté :

^(1[ /-/+]{0,3}|/+1[ -/+]{0,3}|/+1|/+)?((/(/+?1-[2-9][0-9]{1,2}/))|(/(/+?[2-8][0-9][0-9]/))|(/(/+?[1-9][0-9]/))|(/(/+?[17]/))|(/([2-9][2-9]/))|([ /-/.]{0,3}[0-9]{2,4}))?([ /-/.][0-9])?([ /-/.]{0,3}[0-9]{2,4}){2,3}$

Me ocupé de los códigos de país especiales como 1-97 ... también. Aquí están los números que probé en contra (de Puneet Lamba y MCattle):

***** PASS ***** 18005551234 1 800 555 1234 +1 800 555-1234 +86 800 555 1234 1-800-555-1234 1.800.555.1234 +1.800.555.1234 1 (800) 555-1234 (800)555-1234 (800) 555-1234 (800)5551234 800-555-1234 800.555.1234 (+230) 5 911 4450 123345678 (1) 345 654 67 +1 245436 1-976 33567 (1-734) 5465654 +(230) 2 345 6568 ***** CORRECTLY FAILING ***** (003) 555-1212 (103) 555-1212 (911) 555-1212 1-800-555-1234p 800x555x1234 +1 800 555x1234 ***** FALSE POSITIVES ***** 180055512345 1 800 5555 1234 +867 800 555 1234 1 (800) 555-1234 86 800 555 1212

Originalmente publicado aquí: expresión regular para que coincida con el número de teléfono estándar de 10 dígitos



Primero prueba la longitud de la cuerda para ver si está entre 9 y 15.

Luego usa esta expresión regular para validar:

^/+?/d+(-/d+)*$

Esta es otra variación del patrón normal* (special normal*)* , con ser normal /d y ser special - .


Esta solución en realidad valida los números y el formato. Por ejemplo: 123-456-7890 es un formato válido pero NO es un número válido de los EE. UU. Y esta respuesta confirma que otros no lo hacen.

Si no desea la capacidad de extensión, elimine lo siguiente, incluido el paréntesis: (?: / S * (?: # | X.? | Ext.? Extensión) / s * (/ d +) / s *)? :)

editar (anexo) Lo necesitaba en una aplicación del lado del cliente, así que lo convertí. Aquí está para los amigos de JavaScript:

var myPhoneRegex = /(?:(?:/+?1/s*(?:[.-]/s*)?)?(?:(/s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]‌​)/s*)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))/s*(?:[.-]/s*)?)([2-9]1[02-9]‌​|[2-9][02-9]1|[2-9][02-9]{2})/s*(?:[.-]/s*)?([0-9]{4})/s*(?:/s*(?:#|x/.?|ext/.?|extension)/s*(/d+)/s*)?$/i; if (myPhoneRegex.test(phoneVar)) { // Successful match } else { // Match attempt failed }

hth. editar final

Esto permite extensiones o no y funciona con .NET

(?:(?:/+?1/s*(?:[.-]/s*)?)?(?:(/s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]‌​)/s*)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))/s*(?:[.-]/s*)?)([2-9]1[02-9]‌​|[2-9][02-9]1|[2-9][02-9]{2})/s*(?:[.-]/s*)?([0-9]{4})(?:/s*(?:#|x/.?|ext/.?|extension)/s*(/d+))?$

Para validar con o sin espacios finales. Tal vez cuando use validadores .NET y recorte del lado del servidor use esta expresión regular ligeramente diferente:

(?:(?:/+?1/s*(?:[.-]/s*)?)?(?:(/s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]‌​)/s*)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))/s*(?:[.-]/s*)?)([2-9]1[02-9]‌​|[2-9][02-9]1|[2-9][02-9]{2})/s*(?:[.-]/s*)?([0-9]{4})/s*(?:/s*(?:#|x/.?|ext/.?|extension)/s*(/d+)/s*)?$

Todo válido:

1 800 5551212

800 555 1212

8005551212

18005551212

+1800 555 1212 extensión65432

800 5551212 ext3333

# Inválidos

234-911-5678

314-159-2653

123-234-5678

EDITAR: Basado en el comentario de Felipe, he actualizado esto para internacional.

Basado en lo que pude averiguar here y here respecto a los números globales válidos

Esto se prueba como una primera línea de defensa, por supuesto. Un elemento general del número internacional es que no tiene más de 15 caracteres. No escribí un reemplazo para todos los no dígitos y sume el resultado. Debe hacerse para completar. Además, puede observar que no he combinado la expresión regular de América del Norte con esta. La razón es que esta expresión regular internacional coincidirá con los números de América del Norte, sin embargo, también aceptará # inválido conocido como +1 234-911-5678 . Para obtener resultados más precisos, debe separarlos también.

Las pausas y otros instrumentos de marcación no se mencionan y, por lo tanto, no son válidos según E.164.

/(?/+[0-9]{1,3}/)? ?-?[0-9]{1,3} ?-?[0-9]{3,5} ?-?[0-9]{4}( ?-?[0-9]{3})?

Con una palabra de 1 a 10 letras para la extensión y una extensión de 1 a 6 dígitos:

/(?/+[0-9]{1,3}/)? ?-?[0-9]{1,3} ?-?[0-9]{3,5} ?-?[0-9]{4}( ?-?[0-9]{3})? ?(/w{1,10}/s?/d{1,6})?

Internacional válida: el nombre del país para ref no es una coincidencia.

+55 11 99999-5555 Brasil

+593 7 282-3889 Ecuador

(+44) 0848 9123 456 UK

+1 284 852 5500 BVI

+1 345 9490088 Gran Caimán

+32 2 702-9200 Bélgica

+65 6511 9266 Asia Pacífico

+86 21 2230 1000 Shanghai

+9124 4723300 India

+821012345678 Corea del Sur

Y para su placer de extensión

+55 11 99999-5555 ramal 123 Brasil

+55 11 99999-5555 foo786544 Brasil

Disfrutar


^[0-9/-/+]{9,15}$

concuerdaría 0 + 0 + 0 + 0 + 0 + 0, o 000000000, etc.

(/-?[0-9]){7}

coincidiría con un número específico de dígitos con guiones opcionales en cualquier posición entre ellos.

¿Qué se supone que es este formato +077?

No es un formato válido. Ningún código de país comienza con 0.

Los dígitos después de + deben ser normalmente un código de país, de 1 a 3 dígitos de longitud.

Permitiendo "+" luego código de país CC, luego guión opcional, luego "0" más dos dígitos, luego guiones y dígitos para los siguientes siete dígitos, intente:

^/+CC/-?0[1-9][0-9](/-?[0-9]){7}$

Ah, y {3,3} es redundante, se simplifica a {3}.


/^[0-9/+]{1,}[0-9/-]{3,15}$/

entonces primero es un dígito o un +, luego algunos dígitos o -


The following regex matches a ''+'' followed by n digits var mobileNumber = "+18005551212"; var regex = new RegExp("^//+[0-9]*$"); var OK = regex.test(mobileNumber); if (OK) { console.log("is a phone number"); } else { console.log("is NOT a phone number"); }


^(/+/d{1,2}/s)?/(?/d{3}/)?[/s.-]/d{3}[/s.-]/d{4}$

Coincide con los siguientes casos:

123-456-7890

(123) 456-7890

123 456 7890

123.456.7890

+91 (123) 456-7890


^+?/d{3}-?/d{2}-?/d{2}-?/d{3}$

Puedes intentar esto ...

¿Qué tal este ... Espero que esto ayude ...

^(//+?)/d{3,3}-?/d{2,2}-?/d{2,2}-?/d{3,3}$