我希望我的用户密码规则如下:
- 至少包含一个字母和一个数字。
- 可以包含特殊字符(几乎所有键盘上的特殊字符)。
- 长度大于8个字符。
这是我的正则表达式:
/^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d!"#$%&'()*+,-.\/:;<=>?@[\]^_`{|}~]{8,}$/
但是它匹配不上反斜杠。例如,密码“3e5t1qa2w\”将会失败。
我使用Laravel(PHP框架)验证,所以完整的代码如下:
'password' => array(
'sometimes',
'required',
'between:8,32',
'regex:/^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d!"#$%&\'()*+,-.\/:;<=>?@[\]^_`{|}~]{8,}$/'
),
有人知道为什么吗?
/
是斜杠或正斜杠;\
是反斜杠。 - Chris