我目前正在使用jQuery unobtrusive validation和ASP.NET MVC。
我已经设置了我的后端代码,这样就可以向给定的输入字段发送多个正则表达式验证,结果如下:
<input class="form-control" data-val="true" data-val-alphanumericonly="This field can only contain alphanumerical characters." data-val-alphanumericonly-pattern="^[a-z0-9àâäçéèêëïöôûü\s]+$" data-val-nospaces="This field can't contain spaces." data-val-nospaces-pattern="^\S+$" id="User_UserName" name="User.UserName" placeholder="Username" type="text" value="">
我现在可以通过在jquery.validate.unobtrusive.js文件中添加以下代码来完美地完成这项工作
$jQval.addMethod("nospaces", function (value, element, params) {
var match;
if (this.optional(element)) {
return true;
}
match = new RegExp(params).exec(value);
return (match && (match.index === 0) && (match[0].length === value.length));
});
adapters.addSingleVal("nospaces", "pattern");
$jQval.addMethod("alphanumericonly", function (value, element, params) {
var match;
if (this.optional(element)) {
return true;
}
match = new RegExp(params).exec(value);
return (match && (match.index === 0) && (match[0].length === value.length));
});
adapters.addSingleVal("alphanumericonly", "pattern");
我唯一的问题是,我不想单独为每个规则执行此操作,因为每次都是完全相同的代码。我想知道是否有办法以动态的方式做到这一点。
我正在考虑使用前缀,然后使用相同的方法一次,响应前缀而不是整个名称。 所以有regex_nospaces和regex_alphanumericalonly并且函数为$ jQval.addMethod(&#34; regex _ *&#34;,...
PS:我已经尝试使用相同的名称,但我必须为.Net
指定唯一的名称