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

c# – 至少1个数字的6个字符以内的弱密码

发布时间:2020-12-16 00:17:24 所属栏目:百科 来源:网络整理
导读:我想为密码创建正则表达式,其长度至少为6个字符,并且其中至少包含1位数字.这是我提出的表达方式: Regex regEx = new Regex(@"^?=d.{6,}$"); 但这似乎不起作用.谁能告诉我为什么? 我想它在开始和结束之间说,它会执行预测,看看密码中是否出现任何数字.看来,
我想为密码创建正则表达式,其长度至少为6个字符,并且其中至少包含1位数字.这是我提出的表达方式:

Regex regEx = new Regex(@"^?=d.{6,}$");

但这似乎不起作用.谁能告诉我为什么?

我想它在开始和结束之间说,它会执行预测,看看密码中是否出现任何数字.看来,然后说任何事都可以重复{6,}说至少6个字符.但这似乎不起作用.任何人都可以纠正我吗?

更新:根据Albin Sunnanbo的要求,我已将标题从强密码更改为弱密码.

解决方法

您的非捕获组缺少括号.试试这个:

^(?=.*d).{6,}$

小测试验证一些基本功能:

[TestMethod]
    public void CheckAtLeastNotSuperWeakPassword()
    {
        var r = new Regex(@"^(?=.*d).{6,}$");
        Action<string,bool> a = (s,b) =>
        {
            Assert.AreEqual(b,r.IsMatch(s),s);
        };
        a("",false);
        a("a",false);
        a("abcdef",false);
        a("abcdefg",false);
        a("1",false);
        a("abc1e",false);
        a("abc1ef",true);
        a("1bcaef",true);
        a("cbcae1",true);
        a("cbcae1wqd32",true);
    }

(编辑:李大同)

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

    推荐文章
      热点阅读