Шаблон регулярного выражения для проверки номера мобильного телефона с добавочным номером
У меня есть отдельные проверки регулярных выражений для моего требования, но я не могу объединить их в одно требование. Я проверяю мобильные номера с кодом страны или начиная с 00, а также если они содержат добавочный номер (2-5 цифр), разделенный #
Ниже приведен пример действительного номера:
+919986040933
00919986040933
+919986040933#12
+919986040933#123
+919986040933#1234
+919986040933#12345
У меня есть следующее регулярное выражение для проверки выше:
var phoneRegexWithPlus = "^((\\+)|(00))[0-9]{10,14}$";
var phoneRegexWithZero = "^((\\+)|(00))[0-9]{9,12}$";
var phoneRegexExtension = "^[0-9]{2,5}$";
В настоящее время я проверяю, содержит ли число #, если да, то разделяю его и сопоставляю номер и добавочную часть отдельно, где добавление идет после хеша.
Теперь моя проблема в том, что мне нужно создать одно регулярное выражение, объединяющее три перечисленных выше. Может ли кто-нибудь помочь мне с этим, поскольку я не очень хорош в регулярном выражении. Заранее спасибо.
1 ответ
Я предлагаю это выражение:
^\+?(?:00)?\d{12}(?:#\d{2,5})?$
Посмотреть демо-версию регулярного выражения
Выражение объяснения:
^
- начало строки\+?
- необязательный плюс (как?
соответствует+
один или ноль раз)(?:00)?
- необязательный00
\d{12}
- ровно 12-значная строка(?:#\d{2,5})?
- необязательный (опять же,?
соответствует один или ноль раз) последовательность:#
- буквальный символ хеш\d{2,5}
- от 2 до 5 цифр (вашphoneRegexExtension
)
$
конец строки.
phoneRegexWithPlus
а также phoneRegexWithZero
покрыты первой обязательной частью \+?(?:00)?\d{12}
это соответствует 12-14 цифрам с дополнительным символом плюс в начале.
ПРИМЕЧАНИЕ. Регулярное выражение настраивается в соответствии с введенным вами примером ввода. Если он отличается, пожалуйста, настройте ограничивающие квантификаторы {12}
(это можно заменить, скажем, {9,14}
сопоставить 9–14 вхождений количественного шаблона).