Javascript JQuery验证-如何添加规则?
我试图通过jquery验证文本框输入,但我不知道如何在这种情况下应用某些规则 这里是交易:我希望文本框只接受字母数字输入(A-Z和0-9)并使用“.”作为某些情况下的分离器。如果文本框的值为16(在本例中,则用户必须键入如下内容:67EA981XXVT110TP),则我想验证以检查输入中是否只有字母和数字,但如果值为19(如:67EA.981X.XVT1.10TP),则必须检查以确认分隔符处于正确位置(每4个字符输入一次)以及字段中是否只有字母数字值 这就是我试图做的事情(我正在使用Razer引擎视图)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引
$(函数(){
$('#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:我正在为你准备一个答案,很快就会有。太棒了!你能通过接受我或斯蒂芬的答案将这个问题标记为已解决吗?太棒了!你能通过接受我或斯蒂芬的答案将这个问题标记为已解决吗?