Подтвердить что ты не робот

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

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

Например:

9882223456
8976785768
7986576783

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

4b9b3361

Ответ 1

^[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}$

Ответ 2

^(?:(?:\+|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

Ответ 3

Здесь вы идете:)

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

Ответ 4

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

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 (India), чтобы иметь возможность соответствовать ੯੧੨੩੪੫੬੭੮੯, вы можете сделать это следующим образом:

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

Это вернет собственные цифры для 7-9. Затем вы можете объединить их вместе, чтобы сформировать регулярное выражение, поддерживающее культуру, для цифр 7-9.

Ответ 5

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

^(?:(?:\+|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

Ответ 6

Это работает для меня, используя JAVA script для расширения 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 "<a href='tel:"+x.replace( /(\s|-)/g, "")+"'>"+x+"</a>";});

    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

Ответ 7

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")
            }

Ответ 8

"^((0091)|(\+91)|0?)[789]{1}\d{9}$";

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

Подробнее о примере кода см. мой блог.

Ответ 9

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

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

Ответ 10

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

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

Ответ 11

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

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

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

Ответ 12

Решения (^[789]\d{9}$ или ^[789][0-9]{9}$), рассказанные другими, имеют один большой поток (если это используется для проверки формы). Он также проверяет числа, имеющие более 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)

Ответ 13

/(((^[\+,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 здесь.

Ответ 14

В Свифте

 extension String {
    var isPhoneNumber: Bool {
      let PHONE_REGEX = "^[7-9][0-9]{9}$";
      let phoneTest = NSPredicate(format: "SELF MATCHES %@", PHONE_REGEX)
      let result =  phoneTest.evaluate(with: self)
      return result
   }
}