Нужна помощь для регулярных выражений с PHP Preg_match для проверки числового поля в нашей форме - PullRequest
0 голосов
/ 25 мая 2019

:) Мы хотели бы установить специальное условие (на основе регулярного выражения PHP Preg_match) для проверки числа в нашей форме.

  • Это «числовое поле» сначала должно содержать не более 13 цифр (и только цифры. Никаких букв или чего-либо еще).

  • Самое первое число должно быть (только) «1» или «2» (не что-нибудь еще)

  • 4-е и 5-е число представляют (объединенные 2 числа) «месяц рождения» кого-либо, поэтому 4-е число должно быть «0» или «1», а 5-е число должно быть между « 1 "и" 9 ".

Очень признателен, если вы можете помочь нам в этом, чтобы иметь хороший «синтаксис» для регулярного выражения в PHP Preg_match для проверки этого поля в нашей форме! :)

Спасибо сообществу за вашу поддержку и помощь!

Привет

1 Ответ

1 голос
/ 25 мая 2019

Вот шаблон буквального регулярного выражения, который вы описали нам:

^[12]\d{2}(?:0[1-9]|1[0-2])\d{8}$

Пример сценария:

$input = "1231212345678";
if (preg_match("/^[12]\d{2}(?:0[1-9]|1[0-2])\d{8}$/", $input)) {
    echo "MATCH";
}

Этот шаблон регулярного выражения говорит:

^                  from the start of the string
[12]               match 1 or 2 as the first digit
\d{2}              then match any digits in the 2nd and 3rd position
(?:0[1-9]|1[0-2])  match 01, 02, ..., 12 as the two digit month
\d{8}              then match any other 8 digits
$                  end of string
...