【发布时间】:2017-05-07 14:23:35
【问题描述】:
我希望我的用户密码具有如下规则:
- 至少一个字母,至少一个数字。
- 可以包含特殊字符(几乎所有的特殊字符在 键盘)
- 长度超过 8。
这是我的正则表达式
/^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d!"#$%&'()*+,-.\/:;<=>?@[\]^_`{|}~]{8,}$/
但它与 反斜杠 不匹配。 例如,密码“3e5t1qa2w\”将失败。
我使用 laravel(php framework) 验证,所以完整代码是这样的:
'password' => array(
'sometimes',
'required',
'between:8,32',
'regex:/^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d!"#$%&\'()*+,-.\/:;<=>?@[\]^_`{|}~]{8,}$/'
),
有人知道为什么吗?
【问题讨论】:
-
我相信你需要用另一个反斜杠来转义反斜杠。
-
是的,我喜欢......[反斜杠反斜杠]........但没用
-
/是斜杠或正斜杠;\是一个反斜杠。 -
你真的需要阅读这个:stackoverflow.com/questions/401656/…
-
您希望长度超过 8,但您提供的示例密码只有六个字符,对于初学者来说。
标签: php regex laravel validation preg-match