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

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

Для номера наземной линии

03595-259506
03592 245902
03598245785

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

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

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

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

person Iswar    schedule 21.08.2013    source источник


Ответы (13)


Для номера наземной линии

03595-259506
03592 245902
03598245785

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

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

НОВИНКА для всех;)

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/

person M.R    schedule 21.08.2013

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

\+?\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
person VineetChirania    schedule 12.01.2015
comment
Это регулярное выражение также принимает эти нет: (@ 5094 10574 - person M.J; 17.09.2018

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

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

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

  1. 8880344456
  2. +918880344456
  3. +91 8880344456
  4. +91-8880344456
  5. 08880344456
  6. 918880344456
person Minkesh Jain    schedule 09.02.2016
comment
@Ajay обновляет регулярное выражение до: ^ (\ + 91 [\ - \ s]?)? (\ 91 [\ - \ s]?)? [0]? (91)? [123456789] \ d {9} $) для проверки 91-8883044456, если это необходимо в вашем случае - person Rithesh Rao; 05.02.2019

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

Объяснение:

(?:\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
person Parth    schedule 24.05.2016

Я использую следующее для одного из моих проектов Python

Регулярное выражение

(\+91)?(-)?\s*?(91)?\s*?(\d{3})-?\s*?(\d{3})-?\s*?(\d{4})

Использование Python

re.search(re.compile(r'(\+91)?(-)?\s*?(91)?\s*?(\d{3})-?\s*?(\d{3})-?\s*?(\d{4})'), text_to_search).group()

Объяснение

(\+91)? // optionally match '+91'
(91)?   // optionally match '91'
-?      // optionally match '-'
\s*?    // optionally match whitespace
(\d{3}) // compulsory match 3 digits
(\d{4}) // compulsory match 4 digits

Протестировано и работает на

9992223333
+91 9992223333
91 9992223333
91999 222 3333
+91999 222 3333
+91 999-222-3333
+91 999 222 3333
91 999 222 3333
999 222 3333
+919992223333
person Parag Naik    schedule 16.01.2020

Вы можете использовать такое регулярное выражение.

/^[(]+\ ++\d{2}[)]+[^0]+\d{9}/

person Devi Silaparasetti    schedule 14.11.2019
comment
Совпадает ((((((((( 12)))))))))))))))))))))))))*$ù^^<q!§à@çè"é """123456789jsqfh khe alkjlkjrh erj kjhklerjaht lekjarhtlkjrt, но не уверен, что это действительный номер телефона. - person Toto; 14.11.2019

Для мобильных номеров в Индии

Регулярное выражение для проверки 11- или 12-значного числа (начиная с 0 или 91)

String regx = "(0/91)?[7-9][0-9]{9}";

String mobileNumber = "09756432848";

check 

if(mobileNumber.matches(regx)){
   "VALID MOBILE NUMBER"
}else{
   "INVALID MOBILE NUMBER"
}

Вы можете проверить наличие 10-значного мобильного номера, удалив "(0/91)?" из регулярного выражения, т.е. regx

person Amar Gore    schedule 15.04.2020

вы можете реализовать следующее регулярное выражение regex = '^ [6-9] [0-9] {9} $'

person GST Talib    schedule 23.07.2020

Все мобильные номера в Индии начинаются с 9, 8, 7 или 6. Теперь есть шанс, что вас не беспокоят префиксы (+91 или 0). Если это ваш сценарий, вы можете воспользоваться помощью на веб-сайте regextester.com или использовать r '^ (+ 91 [- \ s]?)? [0]? (91)? [789] \ d {9} $'

А если вы хотите подтвердить номер телефона с префиксами (+91 или 0), используйте: r '^ [6-9] \ d {9} $'.

person Akshay Katiha    schedule 06.03.2019

для мобильного номера:

const re = /^[6-9]{1}[0-9]{9}$/;
person Gourav Manna    schedule 26.05.2021
comment
Это кажется полезным дополнением к принятому ответу, который предназначен только для стационарных форматов. Но почему это предпочтительнее, например, @parth answer, который утверждает, что поддерживает как стационарные , так и мобильные форматы? - person Jeremy Caney; 27.05.2021
comment
Кроме того, было бы полезно добавить тестовые примеры, по которым вы это оценивали, как это делали другие ответы, чтобы продемонстрировать охват форматов, которые он будет охватывать. - person Jeremy Caney; 27.05.2021

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

   ^[0-9\-\(\)\, ]+$
person Arunesh    schedule 29.08.2013

Все городские и мобильные номера

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

person KKSINGLA    schedule 31.08.2017

person    schedule
comment
Пожалуйста, объясните регулярное выражение для будущих посетителей. - person Bugs; 22.06.2017
comment
Не могли бы вы объяснить свой код? это не требует пояснений - person acostela; 22.06.2017