我有一个regex
表达式来测试我的密码:至少一个数字,至少一个大写字母,至少一个低写字母和至少一个特殊字符。
/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w\s])/
但下划线未被识别为special character
。
我该如何改善这个?
答案 0 :(得分:5)
问题在于,对于JavaScript,\w
代表:
[a-zA-Z0-9_]
所以你隐瞒了_
。
这部分正则表达式:
(?=.*?[^\w\s]) // Match special character
相当于:
(?=.*?[^a-zA-Z0-9_\s])
\ w元字符用于查找单词字符。
单词字符是a-z,A-Z,0-9中的字符,包括_ (下划线)角色。