【发布时间】:2020-07-25 03:38:39
【问题描述】:
所以在任何人关闭它之前,我在这里参考一个答案并提出一个问题。
所以我的问题是我想要对 laravel 进行强密码验证,包括 10 个字符、数字、大写小写等等。
我找到了:https://stackoverflow.com/a/31549892/1270259
问题是,这个正则表达式看起来不对:
/^.*(?=.{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 的这项工作与上述约束相匹配?
【问题讨论】:
-
为什么不针对所有要求使用一个正则表达式,而不是一次验证一个要求。它不仅可以将您的正则表达式简化为您可以理解的内容,还可以让您在失败时回复相关消息,因为您会知道验证的哪一部分失败了。
-
在仔细检查了您链接的主题后,以 17 个赞成票查看答案,这正是我所指的。
标签: php regex laravel phpunit laravel-7