Asp.net asp net密码正则表达式有问题吗?
我试图在密码字段中验证以下内容:Asp.net asp net密码正则表达式有问题吗?,asp.net,regex,Asp.net,Regex,我试图在密码字段中验证以下内容: -至少1个α -至少1个数字 -至少1个特殊(非字母数字) 我的注册经验是: Regex.IsMatch("jpere33z@1?hs", @"^\w*(?=\w*\d)(?=\w*[a-z])(?=\W*)\w*$") 它说这是无效的。\W部分不起作用 你能告诉我为什么吗?你的正则表达式不允许超过1位数 最简单的方法可能是进行3次正则表达式检查,每种字符类型一次检查存在性。\w*$只匹配字母、数字和下划线。这就是你想要的: Regex.IsMatch("
-至少1个α
-至少1个数字
-至少1个特殊(非字母数字) 我的注册经验是:
Regex.IsMatch("jpere33z@1?hs", @"^\w*(?=\w*\d)(?=\w*[a-z])(?=\W*)\w*$")
它说这是无效的。\W
部分不起作用
你能告诉我为什么吗?你的正则表达式不允许超过1位数
最简单的方法可能是进行3次正则表达式检查,每种字符类型一次检查存在性。
\w*$
只匹配字母、数字和下划线。这就是你想要的:
Regex.IsMatch("@1?hsjpere33z", @"^(?=.*?\d)(?=.*?[a-z])(?=.*?\W).*$", RegexOptions.IgnoreCase)
我将验证移到左侧,并在\w
之前添加了\w*
。
编辑:也使用
*
而不是\w
进行测试查找头。这很难使用正则表达式(至少只有一个)。在正则表达式中,您为字段指定了一个顺序,因此解析器希望字段按该顺序排列
另一种选择是使用选项,但这将使您很难检查您是否具有以下每个术语中的一个:
[\w|\d|\W]{4,}
如果要使用正则表达式,请选中其中三个:
1) 有数字吗
2) 有一个角色吗
3) 有什么特别的吗
如果所有这些都是真的。。。。宾果 正则表达式允许任意数量的数字(至少1),因为
\w
匹配数字、字母和下划线。Hi@Mat它可以工作。。但只有在它们按指定顺序排列时。。。我需要他们在任何秩序。。。你有什么办法吗?@Rafael,修正了符号优先密码。