регулярное выражение для индийских мобильных номеров

Я хочу регулярное выражение для индийских мобильных номеров, которое состоит из 10 цифр.
Числа, которые должны совпадать с 9 или 8 или 7.

Например:

9882223456 8976785768 7986576783 

Он не должен совпадать с числами, начинающимися с 1 до 6 или 0.

^[789]\d{9}$ должен делать трюк.

 ^ #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 

ОБНОВИТЬ

Некоторые операторы связи в Индии представили новую серию мобильных номеров, которая начинается цифрой 6.

для этого использования:

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

Привет, Это регулярное выражение для проверки внутреннего номера мобильного телефона в Индии и для индийского международного сообщества.

начиная с 9,8,7, вы можете добавить больше.

вы можете протестировать его с помощью https://regex101.com/

Действительное число.

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

Ну вот 🙂

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

Повторить другие ответы с дополнительной информацией о том, что такое цифра :

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

Будет соответствовать номерам телефонов, написанным с использованием римских цифр.

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

Будет совпадать с предыдущим регулярным выражением. Если RegexOptions.ECMAScript \d соответствует любой римской цифре.

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

Будет соответствовать номерам телефонов, написанным с использованием любых цифр за последние 9 цифр.

Разница в том, что первые два шаблона будут соответствовать телефонным номерам, таким как 9123456789 то время как третий шаблон также будет соответствовать телефонным номерам, таким как 9੧੨੩੪੫੬੭੮੯ .

Таким образом, вы можете использовать \d для соответствия натурным цифрам. Однако, если вы хотите ограничить соответствие для натурных цифр только некоторыми (например, 7-9), вам понадобится дополнительный шаг. Для punjabi (Индия), чтобы иметь возможность соответствовать ੯੧੨੩੪੫੬੭੮੯ вы можете сделать это следующим образом:

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

Это вернет собственные цифры для 7-9. Затем вы можете объединить их вместе, чтобы сформировать регулярное выражение «знание культуры» для цифр 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") } 

Это работало для меня

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

Действительные сценарии:

 +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 

Недействительные сценарии:

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

Это работает для меня, используя JAVA-скрипт для расширения 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; } 

Это охватывает следующую схему чисел

 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}$"; 

Также является допустимым выражением. Вы можете предшествовать ему либо 0091,+91 либо 0091,+91 либо 0 и не является обязательным.

Более подробную информацию можно найти в моем блоге .

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

это работает для ng-шаблона в angularjs или в javascript или в любой js-структуре

Вот регулярное выражение, предназначенное для соответствия типичным номерам телефонов:

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

Если вы пытаетесь получить несколько мобильных номеров в одном тексте ( re.findall ), то вам, вероятно, следует использовать следующее. Это в основном на тех же линиях, что и те, о которых уже упоминалось, но также имеет особый взгляд и ожидания вперед, чтобы мы не выбирали номер мобильного телефона, которому сразу предшествовало или сразу же следовала цифра. Я также добавил 0? непосредственно перед тем, как захватить фактический номер мобильного телефона, чтобы обрабатывать особые случаи, когда люди добавляют 0 к мобильному номеру.

 (?[789]\d{9})(?!\d) 

Вы можете попробовать его на pythex.org !

Решения ( ^[789]\d{9}$ или ^[789][0-9]{9}$ ), рассказанные другими, имеют один большой stream (если это используется для проверки формы). Он также проверяет числа, имеющие больше чем 10 цифр. В основном наш (потому что я также использовал это) regex находит действительное число, помещенное в любом месте строки. Подобно этому 123456 9897969594 12345.

Проблема может быть решена путем дополнительной проверки длины строки, содержащей число. Подобно этому if(regex.test(value) && value.length==10)/****do whatever*****/alert("Valid Number");

Примечание. – Согласно моим тестам, regex.test(value) проверяет только римские цифры для этого выражения ^[789]\d{9}$ как в firefox (mozilla), так и в 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 

Я не знаю, есть ли для этого простое выражение, но я создал этот REGEX, который проверяет все возможные индийские числа, содержащие (0 или +), тогда (91 или 22 (так как мне это нужно для Махараштры, а во-вторых, что Индия имеют слишком много кодов STD)) или непосредственно ищет номера, начинающиеся с 6,7,8,9, которые имеют / не имеют 0 перед ним.

(/ [regex] / gm) – это пробная версия для многострочного поиска, которую вы можете удалить (// gm), если она не работает / дает ошибку.

Не стесняйтесь попробовать его в regex101 . Мой проект этого REGEX здесь .

  • Режимы нулевой длины и бесконечные совпадения?
  • Как поддержать ссылку «внутренний» выбор (()) в регулярном выражении?
  • Регулярное выражение для пропуска символа в группе захвата
  • Непонимание понимания групп и обратных ссылок
  • Что такое граница слова в регулярных выражениях?
  • Регулярное выражение для соответствия внешним скобкам
  • Как использовать регулярные выражения, как эффективно сопоставлять строки между двойными кавычками со встроенными двойными кавычками?
  • Regex соответствует только целым словам
  • Как я могу распознать злое регулярное выражение?
  • Regex: Согласование путем исключения, без надежды - возможно ли это?
  • Поддержка \ K в regex
  • Давайте будем гением компьютера.