preg_match 接受 0 个字符或 50 到 100 个字符

preg_match accept 0 characters or between 50 to 100

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

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

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

尝试使用 ^$ 并添加到您当前的模式中:

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

我已经测试过了,可以接受空字符串。否则,匹配的唯一方法是输入有 50 到 100 个 alphanumeric/whitespace 个字符。

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

Demo

我会先 trim() 它,然后将您的规则集应用于输入,例如删除输入中的多个(空格|制表符|等),然后验证输入,这样您就结束了填写您想要的内容,或 return 表格并让他们修正他们的输入。