Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery验证-如何添加规则?_Javascript_Jquery_Validation_Asp.net Mvc - Fatal编程技术网

Javascript JQuery验证-如何添加规则?

Javascript JQuery验证-如何添加规则?,javascript,jquery,validation,asp.net-mvc,Javascript,Jquery,Validation,Asp.net Mvc,我试图通过jquery验证文本框输入,但我不知道如何在这种情况下应用某些规则 这里是交易:我希望文本框只接受字母数字输入(A-Z和0-9)并使用“.”作为某些情况下的分离器。如果文本框的值为16(在本例中,则用户必须键入如下内容:67EA981XXVT110TP),则我想验证以检查输入中是否只有字母和数字,但如果值为19(如:67EA.981X.XVT1.10TP),则必须检查以确认分隔符处于正确位置(每4个字符输入一次)以及字段中是否只有字母数字值 这就是我试图做的事情(我正在使用Razer引

我试图通过jquery验证文本框输入,但我不知道如何在这种情况下应用某些规则

这里是交易:我希望文本框只接受字母数字输入(A-Z和0-9)并使用“.”作为某些情况下的分离器。如果文本框的值为16(在本例中,则用户必须键入如下内容:67EA981XXVT110TP),则我想验证以检查输入中是否只有字母和数字,但如果值为19(如:67EA.981X.XVT1.10TP),则必须检查以确认分隔符处于正确位置(每4个字符输入一次)以及字段中是否只有字母数字值

这就是我试图做的事情(我正在使用Razer引擎视图)


$(函数(){
$('#txtCode').blur(函数(){
if($('#txtCode').val().length>19){
警报('无效字段输入!')
}
else如果($('#txtCode').val().length>=1&$('#txtCode').val().length<16){
警报('无效字段输入!')
}
if($('#txtCodVerificador').val().length==16){
//检查字段中是否只有数字和字母
}
if($('#txtCodVerificador').val().length==19){
//检查字段中是否只有数字和字母,以及分隔符是否位于正确的位置(每输入4个字符)
}
});
});
试一试:

$(function () {
  $('#txtCode').blur(function () {
    if ($('#txtCode').val().match(/^[A-Z0-9]{16}$/)) {
      console.log("Matches the 16");
    }else if ($('#txtCode').val().match(/^([A-Z0-9]{4}\.){3}[a-zA-Z0-9]{4}$/)) {
      console.log("Matches the 19");
    }else{
      console.log("Does not match!");
    }
  });
});

如果您对正则表达式有任何疑问,请立即提问!

试一试:

$(function () {
  $('#txtCode').blur(function () {
    if ($('#txtCode').val().match(/^[A-Z0-9]{16}$/)) {
      console.log("Matches the 16");
    }else if ($('#txtCode').val().match(/^([A-Z0-9]{4}\.){3}[a-zA-Z0-9]{4}$/)) {
      console.log("Matches the 19");
    }else{
      console.log("Does not match!");
    }
  });
});

如果您对正则表达式有任何疑问,请立即询问!

您提到我使用的是Razer Engine View,因此我假设是这样。您当前的实现意味着您需要在提交时在服务器上再次重复所有验证。若要立即处理此问题,请在您的属性中添加一个
RegularExpressionAttribute

[RegularExpression(@"^[A-Z0-9]{16}|([A-Z0-9]{4}\.){3}[a-zA-Z0-9]{4}$", ErrorMessage = "...")]
public string Code { get; set; }
在我看来

@Html.TextBoxFor(m => m.Code)
@Html.ValidationMessageFor(m => m.Code)
如果您的视图包括
jquery.validate.js
jquery.validate.unobtrusive.js
,那么您将同时获得客户端和服务器端验证(您的
$('#txtCode').blur(..
脚本不是必需的)

要归功于Arcanaraeda对正则表达式的回答。

您提到我使用的是Razer引擎视图,所以我假设是这样。您当前的实现意味着您需要在提交时在服务器上再次重复所有验证。若要立即处理此问题,请在您的属性中添加一个
RegularExpressionAttribute

[RegularExpression(@"^[A-Z0-9]{16}|([A-Z0-9]{4}\.){3}[a-zA-Z0-9]{4}$", ErrorMessage = "...")]
public string Code { get; set; }
在我看来

@Html.TextBoxFor(m => m.Code)
@Html.ValidationMessageFor(m => m.Code)
如果您的视图包括
jquery.validate.js
jquery.validate.unobtrusive.js
,那么您将同时获得客户端和服务器端验证(您的
$('#txtCode').blur(..
脚本不是必需的)


要归功于Arcanecaraeda对正则表达式的回答。

在keyup处理程序中匹配和替换正则表达式的目的是什么?我以前不允许使用特殊字符,我忘了将其取出,抱歉D:我正在为您准备答案,很快就会得到。在keyup处理程序中匹配和替换正则表达式的目的是什么?我是过去我不允许使用特殊字符,但我忘了把它拿出来,对不起D:我正在为你准备一个答案,很快就会有。太棒了!你能通过接受我或斯蒂芬的答案将这个问题标记为已解决吗?太棒了!你能通过接受我或斯蒂芬的答案将这个问题标记为已解决吗?