有效的 RegEx 不适用于 ASP.Net MVC RegularExpression 属性
Valid RegEx doesn't work with ASP.Net MVC RegularExpression attribute
我有一个正则表达式来验证密码规则。
在 .Net 控制台应用程序中,它按预期正确拒绝或验证密码。
var strongRegex = new Regex("^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[^a-zA-Z0-9])");
Console.WriteLine(strongRegex.IsMatch("Test_1234"));
这returns"true",符合预期。
当我在 ASP.Net MVC 项目中将此添加到我的模型时,jQuery 对客户端的非干扰性验证拒绝了相同的值。
[RegularExpression("^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[^a-zA-Z0-9])"]
由于阅读了先前框架版本中的区分大小写问题,我查看了页面源代码以查看其呈现方式,但此处似乎并非如此……它呈现以下内容input
元素:
data-val-regex-pattern="^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[^a-zA-Z0-9])"
这会导致在控制台应用程序 ("Test_1234") 中工作的相同值无法通过客户端验证。
您的密码验证规则似乎是:
- 必须至少有 1 个数字
- 必须至少有 1 个大写字符
- 必须至少有 1 个小写字符
- 必须有至少 1 个其他字符不符合前三个规则之一。
如果我没看错,试试这个:
^((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9])).*
我有一个正则表达式来验证密码规则。
在 .Net 控制台应用程序中,它按预期正确拒绝或验证密码。
var strongRegex = new Regex("^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[^a-zA-Z0-9])");
Console.WriteLine(strongRegex.IsMatch("Test_1234"));
这returns"true",符合预期。
当我在 ASP.Net MVC 项目中将此添加到我的模型时,jQuery 对客户端的非干扰性验证拒绝了相同的值。
[RegularExpression("^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[^a-zA-Z0-9])"]
由于阅读了先前框架版本中的区分大小写问题,我查看了页面源代码以查看其呈现方式,但此处似乎并非如此……它呈现以下内容input
元素:
data-val-regex-pattern="^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[^a-zA-Z0-9])"
这会导致在控制台应用程序 ("Test_1234") 中工作的相同值无法通过客户端验证。
您的密码验证规则似乎是:
- 必须至少有 1 个数字
- 必须至少有 1 个大写字符
- 必须至少有 1 个小写字符
- 必须有至少 1 个其他字符不符合前三个规则之一。
如果我没看错,试试这个:
^((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9])).*