我有一个跟随正则表达式,但它似乎没有按预期工作。
我想要一个小写字母,一个大写字母,一个数字或一个特殊字符。
长度应至少为8个字符。
(^.*(?=.{8,})(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).*$)
任何人都可以帮忙吗
答案 0 :(得分:2)
我看到两个问题。你的数字说明符前面有一个双反斜杠 - 使它成为一个单一的反斜杠。你也没有“特殊字符”的表达式。我添加了一个表达式以包含一些特殊字符 - 您可以根据需要调整它(小心 - 有些具有特殊含义,例如-
)。
表达式(更新以反映“一位数或一位特殊字符”):
(^.*(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*_0-9]).*$)
这需要至少8个字符,小写字母,大写字母和列表!@#$%^&*_0-9
中的字符(“0
之间的特殊字符或数字之一9
)。
答案 1 :(得分:0)
更有效的模式= ^(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*_0-9])(.{8,})$
Demo