我需要一个正则表达式的密码,以满足我的rails项目中的以下约束:
我现在的正则表达式是:
/^(?=.*\d)(?=.*([a-z]|[A-Z])).{8,16}$/
这允许我所有的限制,但特殊字符部分不起作用。我做错了什么有人可以纠正这个正则表达式吗?
提前致谢。
答案 0 :(得分:3)
/^(?=.*\d)(?=.*[a-zA-Z])[0-9a-zA-Z]{8,16}$/
正则表达式的最后一部分.{8,16}
允许任何带点的字符。
前瞻只能确保至少有一个数字和一个字母 - 它没有说明其他字符。另请注意,我已更新了您的字母匹配部分 - 您不需要两个字符类。
禁止密码中的特殊字符完全违反直觉。你为什么这样做?