Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有用于验证用户密码的正则表达式以包含:
至少 8 个字母数字字符 1个大写字母 1个小写字母 1 位数 允许特殊字符!@#$%*.~
允许特殊字符!@#$%*.~
我正在使用以下正则表达式:
(?=(.*\w){8,})(?=(.*[A-Z]){1,})(?=(.*[a-z]){1,})(?=(.*[0-9]){1,})(?=(.*[!@#$%*.~]))
但是,这不会阻止用户输入其他特殊字符,例如 <、> 和 &。
如何限制允许的特殊字符数?
验证所有内容的单个正则表达式最终看起来像线路噪音。
相反,我建议:
^(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z])[a-zA-Z0-9!@#$%*.~]{8,}$
顺便说一下,锚定(^和$)很重要。
^
$