c# - 密码必须至少有一个非字母字符

标签 c# regex asp.net-mvc validation

我需要一个正则表达式作为密码。密码必须至少包含 8 个字符。至少一个字符必须是数字或特殊字符(不是字母)。

[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 8)]
[RegularExpression(@"(?=.*\W)?(?=.*\d)", ErrorMessage = "Error message")]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }

我有一个长度验证,但我需要一个正则表达式方面的帮助来检查密码是否包含至少一个数字或特殊字符。

有效密码示例:

testtest85*
testtes*
testtes1
test1234*+

无效密码示例:

testtest
testabc

最佳答案

使用正则表达式模式 ^(?=.{8})(?=.*[^a-zA-Z])


解释:

^(?=.{8})(?=.*[^a-zA-Z])
│└──┬───┘└──────┬──────┘
│   │           │
│   │           └ string contains some non-letter character
│   │
│   └ string contains at least 8 characters
│
└ begining of line/string

如果你还想限制最大长度(比如说 16),那么使用正则表达式模式:

^(?=.{8,16}$)(?=.*[^a-zA-Z])

关于c# - 密码必须至少有一个非字母字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12055005/

相关文章:

python - 按多个分隔符拆分并保留分隔符

python - 如何匹配字符后面出现的字符串(如果存在),否则不应匹配任何内容

c# - 如何使用表达式设置属性值?

c# - web farm环境开发注意事项

c# - 如何让应用程序名称显示在打开方式列表中?

javascript - JS 短名正则表达式

javascript - 有没有办法保存单个图像并防止用户使用 dropzone.js 放置多个图像?

c# - 如何在 MVC 模型中从 SQL Server 数据库一次检索一条记录

javascript - 在 JavaScript 中迭代 IEnumerable 模型

c# - 如何在 vista 注册表中注册用 C# 编写的命名空间扩展