强密码验证 laravel
Strong passwords validation laravel
所以在任何人关闭它之前,我在这里引用一个答案并提出一个问题。
所以我的问题是我想要 laravel 的强密码验证,其中包括 10 个字符、数字、大写字母等等。
我找到了:
问题是,这个正则表达式看起来不对:
/^.*(?=.{3,})(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[\d\X])(?=.*[!$#%]).*$/
而且由于我不擅长使用正则表达式,所以我想问一下如何修复它以使其有效:
- 长度必须为 10 个字符
- 必须包含大小写
- 必须至少包含一个数字
- 必须包含至少一个特殊字符。
我觉得他们的答案很接近。当这是针对 github 操作的 运行 时,返回的错误是 preg_match(): Compilation failed: escape sequence is invalid in character class at offset 46
.
还有什么想法可以让 Laravel 7 符合上述限制吗?
运用对比原则:
^
(?=[^a-z]*[a-z]) # ensure one lower case letter
(?=[^A-Z]*[A-Z]) # ensure one upper case letter
(?=\D*\d) # ensure a digit
(?=[^!@?]*[!@?]) # special chars
.{10,} # at least 10 characters long
$
当然,您可以扩展特殊字符部分。
参见 a demo on regex101.com。
所以在任何人关闭它之前,我在这里引用一个答案并提出一个问题。
所以我的问题是我想要 laravel 的强密码验证,其中包括 10 个字符、数字、大写字母等等。
我找到了:
问题是,这个正则表达式看起来不对:
/^.*(?=.{3,})(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[\d\X])(?=.*[!$#%]).*$/
而且由于我不擅长使用正则表达式,所以我想问一下如何修复它以使其有效:
- 长度必须为 10 个字符
- 必须包含大小写
- 必须至少包含一个数字
- 必须包含至少一个特殊字符。
我觉得他们的答案很接近。当这是针对 github 操作的 运行 时,返回的错误是 preg_match(): Compilation failed: escape sequence is invalid in character class at offset 46
.
还有什么想法可以让 Laravel 7 符合上述限制吗?
运用对比原则:
^
(?=[^a-z]*[a-z]) # ensure one lower case letter
(?=[^A-Z]*[A-Z]) # ensure one upper case letter
(?=\D*\d) # ensure a digit
(?=[^!@?]*[!@?]) # special chars
.{10,} # at least 10 characters long
$
当然,您可以扩展特殊字符部分。
参见 a demo on regex101.com。