Jquery Unobstrustive 和 MVC 5 - RegEx 在 jquery unobstrustive 中从未满足
Jquery Unobstrustive and MVC 5 - RegEx never satisfied in jquery unobstrustive
我正在编写一个 MVC 应用程序,我需要一个强密码。很简单,我使用以下 属性.
设置了一个视图模型
[Required]
[RegularExpression(@"(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,", ErrorMessage ="1 upper, 1 lower, 1 digit, 8 character minimum length")]
public string PasswordEntered { get; set }
当我使用服务器验证时,这工作得很好:只要我输入一个小写字母、一个数字和总共 8 个字符,我的模型就是有效的。
一旦我打开 jquery 不显眼的验证,我的所有其他字段都会在没有往返的情况下进行验证,但密码顽固地给我错误消息,即使我输入了像 Password123 这样的有效密码。
为什么正则表达式无法工作?我该如何纠正?
编辑:
进一步的研究。在调试和逐步执行 jquery 代码时,我看到了这个
return (match && (match.index === 0) && (match[0].length === value.length));
所以因为我的正则表达式 return 任何匹配组,jquery 认为正则表达式失败。我不确定如何获得匹配组来满足 jquery...
在 RegEx 速成班超过 2 小时并通过 jquery 代码后,我发现 jquery 要求匹配组的长度与被测试的输入相同。由于我的原始正则表达式不包含匹配组,因此 jquery 函数失败。我修改了我原来的正则表达式,它现在可以工作了。
(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(.{8,}$)
我正在编写一个 MVC 应用程序,我需要一个强密码。很简单,我使用以下 属性.
设置了一个视图模型 [Required]
[RegularExpression(@"(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,", ErrorMessage ="1 upper, 1 lower, 1 digit, 8 character minimum length")]
public string PasswordEntered { get; set }
当我使用服务器验证时,这工作得很好:只要我输入一个小写字母、一个数字和总共 8 个字符,我的模型就是有效的。
一旦我打开 jquery 不显眼的验证,我的所有其他字段都会在没有往返的情况下进行验证,但密码顽固地给我错误消息,即使我输入了像 Password123 这样的有效密码。
为什么正则表达式无法工作?我该如何纠正?
编辑: 进一步的研究。在调试和逐步执行 jquery 代码时,我看到了这个
return (match && (match.index === 0) && (match[0].length === value.length));
所以因为我的正则表达式 return 任何匹配组,jquery 认为正则表达式失败。我不确定如何获得匹配组来满足 jquery...
在 RegEx 速成班超过 2 小时并通过 jquery 代码后,我发现 jquery 要求匹配组的长度与被测试的输入相同。由于我的原始正则表达式不包含匹配组,因此 jquery 函数失败。我修改了我原来的正则表达式,它现在可以工作了。
(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(.{8,}$)