c# - 用于检查密码是否为 "8 characters including 1 uppercase letter, 1 special character, alphanumeric characters"的正则表达式

标签 c# regex

我想要一个正则表达式来检查

a password must be eight characters including one uppercase letter, one special character and alphanumeric characters.

这是我的验证表达式,它是八个字符,包括一个大写字母、一个小写字母和一个数字或特殊字符。

(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$"

密码必须是八个字符,包括一个大写字母,一个特殊字符和字母数字字符,我怎么写?

最佳答案

您所追求的正则表达式很可能会非常庞大​​,维护起来简直就是一场噩梦,尤其是对于那些不太熟悉正则表达式的人来说。

我认为分解正则表达式并一次只做一点会更容易。可能需要做更多的事情,但我很确定维护它和调试它会更容易。这还允许您向用户提供更多定向错误消息(不仅仅是 Invalid Password),这应该会改善用户体验。

据我所知,您对正则表达式相当流利,因此我认为为您提供正则表达式来执行您需要的操作是徒劳的。

看到你的评论,我会这样做:

  • 必须是八个字符长:您不需要为此使用正则表达式。使用 .Length 属性应该就足够了。

  • 包括一个大写字母:您可以使用[A-Z]+ 正则表达式。如果字符串至少包含一个大写字母,则此正则表达式将产生 true

  • 一个特殊字符:您可以使用 \W 来匹配任何不是字母或数字的字符,或者,您可以使用像这样的东西 [ !@#] 指定特殊字符的自定义列表。请注意,虽然 $^() 等字符是正则表达式语言中的特殊字符,所以他们需要像这样转义:\$。所以简而言之,您可以使用 \W

  • 字母数字字符:使用\w+应该匹配任何字母和数字以及下划线。

看看this教程以获取更多信息。

关于c# - 用于检查密码是否为 "8 characters including 1 uppercase letter, 1 special character, alphanumeric characters"的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9477906/

相关文章:

c# - 将方法的返回值设置为公共(public)字符串

java - 如果多个正则表达式匹配剩余输入的前缀怎么办?

使用正则表达式的 Javascript 密码验证

正则表达式选择多行字符串中的最后一行

Java 正则表达式不工作 - 字符串分割

c# - 多重链接的 lambda 表达式?

c# - 抽象类还是局部的?

c# - 获取具有唯一 ID/值组合的对象列表

c# - Postgres 数据库在 ADO.NET 实体数据模型中不可用

python - 使用正则表达式查找函数调用