加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用regex c#验证密码

发布时间:2020-12-15 19:58:09 所属栏目:百科 来源:网络整理
导读:这一定很简单,我希望它以同样的方式工作,但它并没有帮助我. using System;using System.Text.RegularExpressions; 我需要密码验证正则表达式,在某些条件下 – 1)必须至少包含一个数字 2)一个大写字母 3)长8个字符. public class Program{ public static bool
这一定很简单,我希望它以同样的方式工作,但它并没有帮助我.

using System;
using System.Text.RegularExpressions;

我需要密码验证正则表达式,在某些条件下 –

1)必须至少包含一个数字

2)一个大写字母

3)长8个字符.

public class Program
{
     public static bool IsValidPassword(string plainText) {
            Regex regex = new Regex(@"^(.{0,7}|[^0-9]*|[^A-Z])$");
            Match match = regex.Match(plainText);
            return match.Success;
}
    public static void Main()
    {
        Console.WriteLine(IsValidPassword("shing"));    //logs 'True' always
    }
}

我从这个来源-Password must be 8 characters including 1 uppercase letter,1 special character,alphanumeric characters采取了正则表达式

问题是它总是返回’True’并且我发送给方法的字符串无效.

如果我正在使用正则表达式做错了,请帮助我.

请在这里播放 – https://dotnetfiddle.net/lEFYGJ

解决方法

我建议您创建单独的模式来验证密码:

var input = "P@ssw0rd";

var hasNumber = new Regex(@"[0-9]+");
var hasUpperChar = new Regex(@"[A-Z]+");
var hasMinimum8Chars = new Regex(@".{8,}");

var isValidated = hasNumber.IsMatch(input) && hasUpperChar.IsMatch(input) && hasMinimum8Chars.IsMatch(input);
Console.WriteLine(isValidated);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读