preg_match принимает 0 символов или от 50 до 100 - PullRequest
0 голосов
/ 07 января 2019

Я пытаюсь написать регулярное выражение, которое будет принимать пустую строку, или, если строка не пустая, она должна содержать от 50 до 100 символов. Таким образом, пользователь может оставить пустое поле или, если он решит заполнить данные, эти данные должны содержать от 50 до 100 символов.

Как мне добавить это к регулярному выражению ниже?

preg_match('/^[a-z0-9\s]{50,100}$/i',$str)

Ответы [ 3 ]

0 голосов
/ 07 января 2019

Попробуйте Regex: ^(?:[a-z0-9 ]{50,100})?$

Демо

0 голосов
/ 07 января 2019

Я бы сначала обрезал () его, затем применил ваш набор правил к входу, как, например, удалить multi (пробелы | табуляции | и т. Д.) Внутри ввода, а затем проверил ввод, чтобы вы получили то, что хотите, или верните форму и позвольте им исправить свои данные.

0 голосов
/ 07 января 2019

Попробуйте использовать ^$ с чередованием, добавленным к вашему текущему образцу:

preg_match('/^$|^[a-z0-9\s]{50,100}$/i', $str)

Я проверил это, и пустая строка принята. В противном случае единственным способом сопоставления будет ввод от 50 до 100 буквенно-цифровых / пробельных символов.

...