gpt4 book ai didi

jquery - 不引人注目的验证 : Regex validation of optional field

转载 作者:行者123 更新时间:2023-12-01 05:51:13 26 4
gpt4 key购买 nike

我正在使用 MVC 数据注释为模型上的字段指定验证正则表达式。该字段是可选的,即它没有应用 [Required] 属性:

[RegularExpression(@"^\d+$")]
public int Quantity { get; set; }

运行客户端验证时,不会根据正则表达式验证此字段。查看 jquery.validate.unobtrusive.js 中的代码,原因就很清楚了:

$jQval.addMethod("regex", function (value, element, params) {
var match;
if (this.optional(element)) { // <- returns if field is optional
return true;
}

match = new RegExp(params).exec(value);
return (match && (match.index === 0) && (match[0].length === value.length));
});

如何添加验证以便允许空字段,但如果输入值,则它必须与正则表达式匹配?

编辑时:显然我可以更改 jquery.validate.unobtrusive.js 中的代码,但我宁愿保留此文件,这样我的更改就不会被将来的更新覆盖。

最佳答案

您的正则表达式不正确。 d+ 表示“匹配一个或多个十进制数字”。将您的数据注释更改为此(注意用 * 代替 +,这意味着“零次或多次”):

[RegularExpression(@"^\d*$")]
public int Quantity { get; set; }

查看this Microsoft article了解更多信息。

关于jquery - 不引人注目的验证 : Regex validation of optional field,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22045317/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com