expresión regular para números móviles indios

Quiero una expresión regular para números móviles indios que consta de 10 dígitos.
Los números que deberían coincidir comienzan con 9 u 8 o 7.

Por ejemplo:

9882223456 8976785768 7986576783 

No debe coincidir con los números que comienzan con 1 a 6 o 0.

^[789]\d{9}$ debería hacer el truco.

 ^ #Match the beginning of the string [789] #Match a 7, 8 or 9 \d #Match a digit (0-9 and anything else that is a "digit" in the regex engine) {9} #Repeat the previous "\d" 9 times (9 digits) $ #Match the end of the string 

ACTUALIZAR

Algunos operadores de telecomunicaciones en India introdujeron nuevas series de números móviles que comienzan con el dígito 6.

para ese uso:

 ^[6-9]\d{9}$ 
 ^(?:(?:\+|0{0,2})91(\s*[\-]\s*)?|[0]?)?[789]\d{9}$ 

Hola, esto es regex para la validación de un número móvil local indio y para un internacional indio.

comenzando con 9,8,7 puede agregar más también.

puedes probarlo usando https://regex101.com/

El número válido es

9883443344
09883443344
919883443344
0919883443344
+919883443344
+ 91-9883443344
0091-9883443344
+91 -9883443344
+ 91- 9883443344
+91 – 9883443344
0091 – 9883443344

Aqui tienes 🙂

 ^[7-9][0-9]{9}$ 

Para reiterar las otras respuestas con información adicional sobre lo que es un dígito :

 new Regex("^[7-9][0-9]{9}$") 

Coincidirá con los números de teléfono escritos con números romanos.

 new Regex(@"^[7-9]\d{9}$", RegexOptions.ECMAScript) 

Coincidirá con lo mismo que la expresión regular anterior. Cuando se especifica RegexOptions.ECMAScript \d coincide con cualquier número romano.

 new Regex(@"^[7-9]\d{9}$") 

Coincidirá con los números de teléfono escritos usando cualquier número para los últimos 9 dígitos.

La diferencia es que los primeros dos patrones solo coincidirán con los números de teléfono, como 9123456789 mientras que el tercer patrón también coincidirá con los números de teléfono, como 9੧੨੩੪੫੬੭੮੯ .

Entonces puede usar \d para unir números nativos. Sin embargo, si desea limitar la coincidencia de números nativos a solo algunos (como 7-9), necesita un paso adicional. Para punjabi (India) para que coincida con ੯੧੨੩੪੫੬੭੮੯ puedes hacerlo así:

 CultureInfo.GetCultureInfo("pa-IN").NumberFormat.NativeDigits.Skip(7).Take(3) 

Esto devolverá los números nativos para 7-9. Luego puede unirlos para formar una expresión regular “cultura consciente” para los dígitos 7-9.

Swift 4

  - Mobile Number Validation [starting with 7,8,9] func validate(value: String) -> Bool { let PHONE_REGEX = "^[7-9][0-9]{9}$"; let phoneTest = NSPredicate(format: "SELF MATCHES %@", PHONE_REGEX) let result = phoneTest.evaluate(with: value) return result } if validate(value: value) { print("True") } 

Esto funcionó para mí

 ^(?:(?:\+|0{0,2})91(\s*[\ -]\s*)?|[0]?)?[789]\d{9}|(\d[ -]?){10}\d$ 

Escenarios válidos:

 +91-9883443344 9883443344 09883443344 919883443344 0919883443344 +919883443344 +91-9883443344 0091-9883443344 +91 -9883443344 +91- 9883443344 +91 - 9883443344 0091 - 9883443344 7856128945 9998564723 022-24130000 080 25478965 0416-2565478 08172-268032 04512-895612 02162-240000 +91 9883443344 022-24141414 

Escenarios no válidos:

 WAQU9876567892 ABCD9876541212 0226-895623124 6589451235 0924645236 0222-895612 098-8956124 022-2413184 

Esto funciona para mí usando el script JAVA para la extensión de Chrome.

 document.body.innerHTML = myFunction(); function myFunction() { var phonedef = new RegExp("(?:(?:\\+|0{0,2})91(\\s*[\\- ]\\s*)?|[0 ]?)?[789]\\d{9}|(\\d[ -]?){10}\\d", "g"); var str = document.body.innerHTML; var res = str.replace(phonedef, function myFunction(x){return ""+x+"";}); return res; } 

Esto cubre el siguiente patrón de números

 9883443344 8888564723 7856128945 09883443344 0 9883443344 0-9883443344 919883443344 91 8834433441 91-9883443344 91 -9883443344 91- 9883443344 91 - 9883443344 91 -9883443344 +917878525200 +91 8834433441 +91-9883443344 +91 -9883443344 +91- 9883443344 +91 - 9883443344 +91 -9883443344 0919883443344 0091-7779015989 0091 - 8834433440 022-24130000 080 25478965 0416-2565478 08172-268032 04512-895612 02162-240000 022-24141414 079-22892350 
 "^((0091)|(\+91)|0?)[789]{1}\d{9}$"; 

También es una expresión válida. Puede precederlo con 0091,+91 o 0 y es opcional.

Para obtener más detalles con la muestra del código, consulte mi blog .

 var PHONE_REGEXP = /^[789]\d{9}$/; 

esto funciona para ng-pattern en angularjs o en JavaScript o en cualquier marco js

Aquí hay una expresión regular diseñada para coincidir con los números telefónicos típicos:

 ^(((\+?\(91\))|0|((00|\+)?91))-?)?[7-9]\d{9}$ 

Si está tratando de obtener múltiples números de teléfono móvil en el mismo texto ( re.findall ), probablemente debería usar lo siguiente. Básicamente está en las mismas líneas que los que ya se mencionan, pero también tiene una mirada especial detrás y aventuras de modo que no seleccionamos un número de móvil inmediatamente precedido o seguido inmediatamente por un dígito. ¿También agregué 0? justo antes de capturar el número de móvil real para manejar casos especiales donde las personas anteponen 0 al número de móvil.

 (?< !\d)(?:\+91|91)?\W*(?P[789]\d{9})(?!\d) 

¡Puedes probarlo en pythex.org !

Las soluciones ( ^[789]\d{9}$ o ^[789][0-9]{9}$ ) contadas por otros tienen un flujo grande (si eso se usa para la validación de formularios) También valida números que tienen más de 10 dígitos Básicamente, nuestra (porque también estaba usando esto) regex encuentra un número válido colocado en cualquier lugar de una cadena. Como este 123456 9897969594 12345.

El problema puede resolverse comprobando adicionalmente la longitud de la cadena que contiene el número. Me gusta esto if(regex.test(value) && value.length==10)/****do whatever*****/alert("Valid Number");

Nota: – De acuerdo con mis pruebas, el regex.test(value) prueba solo los números romanos para esta expresión ^[789]\d{9}$ en ambos firefox (mozilla) y chrome (webkit)

 /(((^[\+,0][9][1])(((\s[0-9]{7,10})|(\S[0-9]{7,10}))|([-]\S[0-9]{7,10})))|((^[\+,0][2]{2,2})((\S[0-9]{7,8})|((([-])[0-9]{7,8})|(\s[0-9]{7,8})))))|(((^[6,7,8,9][0-9]{9,9}))|(^[0,\+](([9][1)|[6,7,8,9]))[0-9]{8,9}))/gm 

No sé si hay una expresión simple para esto, pero he creado este REGEX que valida todos los posibles números indios que contienen (0 o +) luego (91 o 22 (ya que lo necesitaba para Maharashtra y lo segundo es que India tiene demasiados códigos STD)) o busca directamente los números que comienzan con 6,7,8,9 que tienen / no tienen un 0 en frente de él.

(/ [regex] / gm) es una versión de prueba para la búsqueda multilínea. Puede eliminarla (// gm) si no funciona / da error.

No dude en probarlo en regex101 . Mi proyecto de este REGEX está aquí .