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,}")
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值