asp.net 正则表达式数据注解不工作

v09wglhw  于 2023-10-21  发布在  .NET
关注(0)|答案(1)|浏览(106)

我希望我的密码至少包含1个小写字母,1个数字和1个特殊符号,因此我创建了以下表达式:

[RegularExpression(@"(?=.*\d)(?=.*[A-Z])(?=.*[-+_!@#$%^&*.,?])", ErrorMessage = "Password must contain atleast 1 digit, 1 capital letter and atleast 1 one of symbols from -+_!@#$%^&*.,?")]
public string Password { get; set; }

无论我输入什么,它都会给出错误信息。我该如何解决此问题?

vuktfyat

vuktfyat1#

RegularExpressionAttribute所述:
正则表达式搜索精确匹配,而不是在模式的前面使用^,并且在模式的末尾使用$会产生与使用它相同的结果。对于搜索命中,在模式前面加上.*
您应该在末尾添加.*以使精确匹配工作。

[RegularExpression(@"(?=.*\d)(?=.*[A-Z])(?=.*[-+_!@#$%^&*.,?]).*", ErrorMessage = "Password must contain atleast 1 digit, 1 capital letter and atleast 1 one of symbols from -+_!@#$%^&*.,?")]
public string Password { get; set; }

相关问题