^ # Start of string
( # Start capture group
. # Matches any character except line breaks
{6} # Quantifier that only matches 6 preceding tokens (.)
| # OR operator
. # Matches any character except line breaks
{8} # Quantifier that only matches 8 preceding tokens (.)
) # End capture group
$ # End of string
^ # Start of string
(?= # Start of positive lookahead
.* # Matches any character except line breaks 0 or more times
$ # End of string
) # End of positive lookahead
(?: # Start of non-capturing group
.{6} # Matches any character except line breaks exactly 6 times
| # OR operator
.{8} # Matches any character except line breaks exactly 8 times
) # End non-capturing group
$ # End of string
3条答案
按热度按时间vsdwdz231#
您需要创建自定义规则。
在下面的示例中,我使用Closure创建了一个自定义规则,但是您可以创建一个规则对象来重用它。
我使用
mb_strlen
而不是strlen
来覆盖多字节。(UTF8字符)kmbjn2e32#
实际上,您不需要创建自己的验证器,因为Laravel的验证带有一个regex验证规则,因此您只需执行以下操作:
正则表达式是从here偷来的,但您可以在here上测试它
正则表达式解释:
旧答案(不必要的复杂)
正则表达式解释:
piztneat3#
请先尝试保存字符串长度,然后检查if条件。
或者使用regex长度验证规则,如下所示:
表示字符串长度。