这些是要求:
我目前有这个表达式,它按预期工作:
(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*\W)
Run Code Online (Sandbox Code Playgroud)
这会检查除长度之外的所有内容,因此这是有效的Aa2@
如何添加12-16个字符的长度检查?
你的正则表达式是:
(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*\W)
Run Code Online (Sandbox Code Playgroud)
这些是一组前瞻断言,用于强制执行您的需求的某些规则。但是,该正则表达式不会消耗匹配中的任何字符,因此您可以使用.{12,16}或\S{12,16}范围量词来将输入限制为12字符16。因此,以下解决方案应该适合您:
(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*\W)
Run Code Online (Sandbox Code Playgroud)
A.将匹配任何字符,但\S仅匹配非空白字符。