我似乎无法让它发挥作用。
我正在寻找一个验证密码的正则表达式。允许的字符为a-zA-Z0-9
,但序列必须至少包含1个数字和1个大写字母。
可以这样做吗?
答案 0 :(得分:2)
^(?=.*[A-Z])(?=.*[0-9])[A-Za-z0-9]+$
应该这样做。
^ # start of string
(?=.*[A-Z]) # assert that there is at least one capital letter ahead
(?=.*[0-9]) # assert that there is at least one digit ahead
[A-Za-z0-9]+ # match any number of allowed characters
# Use {8,} instead of + to require a minimum length of 8 characters.
$ # end of string
答案 1 :(得分:0)
您可以在正则表达式中使用non-zero-width lookahead/lookbehind assertions。例如:
^\w*(?=\w*\d)(?=\w*[a-z])(?=\w*[A-Z])\w*$
要求至少存在一个数字,一个小写字母和一个大写字母。使用\w
可以接受非英语或重音字符(您可能想要或不想要这些字符)。否则请改用[a-zA-Z]。
答案 2 :(得分:0)
答案 3 :(得分:0)
bool valid =
Regex.IsMatch(password, @"\w+")// add additional allowable characters here
&& Regex.IsMatch(password, @"\d")
&& Regex.IsMatch(password, @"\p{Lu}");