регулярное выражение для индийских мобильных номеров - PullRequest
45 голосов
/ 28 сентября 2010

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

Например:

9882223456
8976785768
7986576783

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

Ответы [ 16 ]

104 голосов
/ 28 сентября 2010

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

UPDATE

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

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

^[6-9]\d{9}$
34 голосов
/ 27 февраля 2014
^(?:(?:\+|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

9 голосов
/ 28 сентября 2010

Вот, пожалуйста:)

^[7-9][0-9]{9}$
7 голосов
/ 28 сентября 2010

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

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

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

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

2 голосов
/ 21 декабря 2017

Свифт 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")
            }
2 голосов
/ 14 июня 2016

Это работает для меня, используя 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 "<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
2 голосов
/ 23 ноября 2015

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

^(?:(?:\+|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
1 голос
/ 02 декабря 2015
var PHONE_REGEXP = /^[789]\d{9}$/;

это работает для ng-паттернов в angularjs, javascript или любых js framework

1 голос
/ 09 февраля 2014
"^((0091)|(\+91)|0?)[789]{1}\d{9}$";

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

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

0 голосов
/ 21 апреля 2019

Для Laravel 5.4 +

'mobile_number_1' => 'требуется | числовой | мин: 0 | регулярное выражение: / ^ [789] \ d {9} $ /' должно помочь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...