preg_match接受0个字符或50到100之间的字符

时间:2019-01-07 14:01:13

标签: php regex preg-match

我正在尝试编写一个将接受空白字符串的正则表达式,或者,如果该字符串不是空白,则应介于50到100个字符之间。因此,用户可以提交一个空白字段,或者如果他选择填写数据,则该数据应介于50到100个字符之间。

如何将其添加到下面的正则表达式中?

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

3 个答案:

答案 0 :(得分:6)

尝试使用正则表达式:^(?:[a-z0-9 ]{50,100})?$

Demo

答案 1 :(得分:1)

尝试使用^$,并在当前模式中添加替换:

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

我已经对此进行了测试,并且接受了空字符串。否则,唯一的匹配方法是输入50到100个字母数字/空格字符。

答案 2 :(得分:-1)

我先修剪(),然后将规则集应用于输入,例如删除输入中的multi(空格| tab | etc),然后验证输入,这样就可以得到所需的结果,或返回表单,让他们修改输入内容。