Как установить maxlength в регулярных выражениях? - PullRequest
1 голос
/ 29 марта 2020

Я создал это рабочее регулярное выражение ниже, оно предназначено для приема только телефонных номеров ex. 09338195838 .

^(09)[0-9]{9}

Однако я не знаю, как установить максимальную длину, которая будет принимать только 11 цифр. Я был на других подобных вопросах, таких как q1 , но ни один из них не помог , и попробовал приведенный ниже код, но все же он принимает, даже если он превышает 11 цифр.

((09)[0-9]{9}){11}

Вот подробная структура:

  1. должен начинаться с 09
  2. должен все числовой c
  3. должен 11 цифры

Кто-то знает, как это сделать?

Ответы [ 3 ]

3 голосов
/ 29 марта 2020

^09[0-9]{9}$
Символ $ означает «Строка должна заканчиваться без других символов после этого».
Извините за мой английский sh.

2 голосов
/ 29 марта 2020

Это идеальное решение для упомянутой проблемы: ^ 09 [0-9] {9} $

Я объясняю ваши мысли.

  • Я думаю Вы хотите обернуть все регулярное выражение с максимальной длиной 11 следующим образом: ^ (09 [0-9]) {11} $ это не сработает, потому что когда вы устанавливаете это {n}, оно повторяет предыдущий термин ровно n раз. По мере того, как вы переносите весь термин, совпадение будет найдено 11 раз, начиная с 09, после любой ди git (0-9). Пример: (098093095 ...). поэтому, сколько времени вы установите его, вы найдете полную обертку между началом и концом.

    Пожалуйста, проверьте ссылку, которую я установил в демонстрационном примере. https://regex101.com/r/JU8JzV/1

2 голосов
/ 29 марта 2020

Вы можете установить слово boun dry.

((09)[0-9]{9})\b

test: https://regexr.com/51c40

, если вы хотите сделать это больше elasti c, not only 11 digit

, которые вы можете использовать ((09)\d{0,9})\b

{0,9} устанавливает минимальную и максимальную длины, теперь он принимает максимум 11 цифр, начинающихся с 09 и мин 2 цифры это 09.

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