<input type="password" pattern="^(?=^[A-Z])(?=.{8,16})(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[1-9])(?=.*[$@$!%*#?&-])">
我有这个HTML,但是我似乎无法使我的模式正常工作。我不确定是否支持正向搜索,或者我实际上没有在整个字符串中搜索该模式。
编辑: 这应该通过:MySafe-Password1 这应该失败:MySaferPassword
答案 0 :(得分:1)
所有命题都是超前的,它产生一个空字符串,您必须将其中一个保持为“真实”:
"^(?=^[A-Z])(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[1-9])(?=.*[$@$!%*#?&-]).{8,16}$"
我在这里进行长度测试。
答案 1 :(得分:1)
验证密码的一般规则是:
^
开始。.{8,16}
)。$
结尾。所以尝试:
^(?=[A-Z])(?=.*?[a-z])(?=.*?[1-9])(?=.*[$@!%*#?&-]).{8,16}$
我认为:
(?=.*?[A-Z])
是不必要的,因为您已经检查了
大写字母。^
(在第一次查找中)。$
(在上一次查找中)。.{8,16}
移到了最后,
(无需查找)。