Регулярное выражение для индийских мобильных номеров
Я хочу регулярное выражение для индийских мобильных номеров, которое состоит из 10 цифр.
Числа, которые должны совпадать с 9 или 8 или 7.
Например:
9882223456
8976785768
7986576783
Он не должен совпадать с числами, начинающимися с 1 до 6 или 0.
Ответы
Ответ 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
}
}