C# 密码验证正则表达式

系统安全性越来越受到重视,此时往往对密码强度要一定要求,例如必须包括大写字母、必须由字母和数字组合而成、必须由字母、数字以及符号组合而成呀。

1. 由字母和数字组合而成:

Regex.IsMatch(strNewPassword, @"^(?:(?=.*[0-9].*)(?=.*[A-Za-z].*)).{2,}")

此正则表达式规则下,密码至少要有一个数字和一个字母,可以包括除去换行符以外的其他字符,甚至可以包括中文。

Regex.IsMatch(strNewPassword, @"^(?:(?=.*[0-9].*)(?=.*[A-Za-z].*))[0-9A-Za-z\W_]{2,}")

 按照ECMA标准,\W能匹配中文。

 

原本使用上面这个形式来进行验证,发现无法匹配中文,说明默认C#默认正则表达式匹配规则不是跟ECMA规则一致。使用RegexOptions.ECMAScript正则表达式选项时可以正常识别中文。

2. 由数字、字母、符号组成:

Regex.IsMatch(strNewPassword, @"^(?:(?=.*[0-9].*)(?=.*[A-Za-z].*)(?=.*[^0-9A-Za-z].*)).{3,}")

你可能感兴趣的:(.Net,正则表达式,正则表达式)