Как написать правильное регулярное выражение для номера мобильного телефона, которое должно начинаться с определенного числа или символов? МВК

Я хочу вводить только числа, начинающиеся с 92 0r 03. Он должен принимать только 12 символов, если начинается с 92, но должен принимать только 11 символов, если начинается с 03. Например, (92307XXXXXXX) или (0307XXXXXXX). Я написал регулярное выражение, но теперь оно работает. При вводе правильного формата пишет неверный номер. Пожалуйста помоги.

 [RegularExpression(@"^((\+92)|(0092))-{0,1}\d{3}-{0,1}\d{7}$|^\d{11}$|^\d{4}-\d{7}$", ErrorMessage = "Invalid Mobile Number.")]

Пожалуйста, четко определите формат, который вы пытаетесь сопоставить, с примерами и покажите некоторые примеры входных данных, которые вы пробовали, и какой результат вы получили для них.

Scott - Слава Україні 21.12.2020 06:51
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
1
117
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
This regex should do the job.

^(?:\+?92|0092)\d{10}$|^03\d{9}$

Спасибо. Можете объяснить, почему моя логика не сработала?

EmmyAyes 21.12.2020 07:35

Во-первых, вы вставили дефисы в нескольких местах, и это неправильно, потому что в телефонном номере дефисов нет. Затем ваше регулярное выражение допускает неправильные телефонные номера: ^((\+92)|(0092))-{0,1}\d{3}-{0,1}\d{7}$ За 92 или 0092 вы вставили {0,1}, поэтому 92 или 0092 являются факультативными. Поэтому, если я введу 040 (например), а затем 7 цифр, это будет соответствовать

nissim abehcera 21.12.2020 09:19

Другие вопросы по теме