我想在整个用户名或密码字段中,用户仅使用重复的一个字母或任何其他字符,以通过PHP注册新用户。我在Google和Regex Wiki和Stackoverflow和Regex101中搜索,但找不到答案。
用户名和密码字符的最小长度为8。
规则:
在用户名或密码字段中,用于注册新用户 1111111,111111111111,22222,22222222222222,...,AAAAAAAAA,AAAAAAAAAAAAAAAA,BBBBBBBBBB,... ,&&&&&&&& ...应该无效 但 11111113,22222221,...,aaaaaaab,baaaaaaa,...,zzzczzzz,... @@@@@@@@@@1 @@@@,2 ******* ,&&&&& n&& ...应该有效。
我找到了这种模式,但没有起作用,并且有警告:
pattern1: ^(?!.*(.)1).{*}$
pattern2: ^(.)1{1,}$
警告是:
警告:preg_match():在C:... test.php上的第70章
上找到的结尾定界符'^'
请帮助我解决这个问题。
这篇文章不是我的回答,也无效:
多次匹配相同的未知字符
perl Regex防止重复字符for密码策略
更新:
谢谢panter.it work ==>〜^(。) 1 {1,} $〜
谢谢太阳能。您的建议很好。
php preg_*在功能中,模式必须在周围有分界符。使用的是~
,但可以是任何东西。
~^(?!.*(.)1).{*}$~
~^(.)1{1,}$~
如果您可以使用用作正则分界符的角色,则需要逃脱它。
为什么要拨号?
您可以简单地使用
if ($mystring === str_repeat($mystring[0], strlen($mystring))) {
// invalid
}