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

Я хочу проверить номера телефонов Индии, а также мобильные номера. Формат номера телефона и мобильного телефона выглядит следующим образом:

Номер земельного участка

03595-259506
03592 245902
03598245785

Для мобильного телефона

9775876662
0 9754845789
0-9778545896
+91 9456211568
91 9857842356
919578965389

Я хотел бы регулярное выражение в одном регулярном выражении. Я пробовал следующее регулярное выражение, но оно не работает должным образом.

{^\+?[0-9-]+$}

Ответ 1

Номер сухопутной линии

03595-259506
03592 245902
03598245785

вы можете использовать этот

\d {5} ([-] *)\d {6}

NEW для всех;)

OLD: ((\+*)(0*|(0 )*|(0-)*|(91 )*)(\d{12}+|\d{10}+))|\d{5}([- ]*)\d{6}
NEW: ((\+*)((0[ -]+)*|(91 )*)(\d{12}+|\d{10}+))|\d{5}([- ]*)\d{6}

9775876662
0 9754845789
0-9778545896
+91 9456211568
91 9857842356
919578965389

03595-259506
03592 245902
03598245785

этот сайт полезен для меня и для вас. * http://gskinner.com/RegExr/

Ответ 2

Это работает отлично:

\+?\d[\d -]{8,12}\d

Матчи:

03598245785
9775876662
0 9754845789
0-9778545896
+91 9456211568
91 9857842356
919578965389
987-98723-9898
+91 98780 98802
06421223054
9934-05-4851
WAQU9876567892
ABCD9876541212
98723-98765

НЕ соответствует:

2343
234-8700
1 234 765

Ответ 3

Используйте следующее регулярное выражение

^(\+91[\-\s]?)?[0]?(91)?[789]\d{9}$

Это будет поддерживать следующие форматы:

  • 8880344456
  • +918880344456
  • +91 8880344456
  • + 91-8880344456
  • 08880344456
  • 918880344456

Ответ 4

Для мобильных и фиксированных номеров: (?:\s+|)((0|(?:(\+|)91))(?:\s|-)*(?:(?:\d(?:\s|-)*\d{9})|(?:\d{2}(?:\s|-)*\d{8})|(?:\d{3}(?:\s|-)*\d{7}))|\d{10})(?:\s+|)

Explaination:

(?:\s+|)                    // leading spaces
((0|(?:(\+|)91))            // prefixed 0, 91 or +91
(?:\s|-)*                   // connecting space or dash (-)
(?:(?:\d(?:\s|-)*\d{9})|    // 1 digit STD code & number with connecting space or dash
(?:\d{2}(?:\s|-)*\d{8})|    // 2 digit STD code & number with connecting space or dash
(?:\d{3}(?:\s|-)*\d{7})|    // 3 digit STD code & number with connecting space or dash
\d{10})                     // plain 10 digit number
(?:\s+|)                    // trailing spaces

Я проверил его по следующему тексту

9775876662
0 9754845789
0-9778545896
+91 9456211568
91 9857842356
919578965389

0359-2595065
0352 2459025
03598245785
07912345678
01123456789
sdasdcsd
+919898101353
dasvsd0 
+91 dacsdvsad
davsdvasd

0112776654

Ответ 5

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

   ^[0-9\-\(\)\, ]+$

Ответ 6

Все стационарные номера и номер мобильного телефона

^ [\ d] {2,4} [-]? [\ d] {3} [-]? [\ d] {3,5} | ([0])? (\ +\d { 1,2} [-]?)? [789] {1}\d {9} $

Ответ 7

Это во многом зависит от того, для чего вы хотите регулярное выражение. У меня был случай использования, когда я импортировал из довольно "грязной" базы данных, и мне нужно было простое выражение, которое просто отсеивало совершенно неправильные. Этого регулярного выражения было достаточно в этом случае: ^\+?[\d(). -]{5,25} ^\+?[\d(). -]{5,25}

Explaination:

  • может начинаться или не начинаться с плюса.
  • может иметь один из этих символов: (). - space digit (). - space digit.
  • должно содержать от 5 до 25 символов.

Наглядное объяснение

enter image description here

Примечание. Согласно МСЭ номера телефонов могут содержать не более 15 цифр (см. План нумерации телефонов). Максимальное число = 25 в Regex содержит специальные символы.

Ответ 8

var phonereg = /^(\+\d{1,3}[- ]?)?\d{10}$/;