【问题标题】:jquery validation for Date "MM/YYYY"日期“MM/YYYY”的jQuery验证
【发布时间】:2013-10-21 11:23:36
【问题描述】:
我正在使用 jQuery 验证插件 (http://jqueryvalidation.org) 进行信用卡验证。我怎样才能让他们使用这个插件以 mm/yyyy 格式准确地输入日期?
jQuery.validator.setDefaults({
debug: true,
success: "valid"
});
$('form[name="submit_cc"]').validate({
rules: {
holder_name: {
required: true,
},
cardnumber: {
required: true,
creditcard: true
}
}
});
感谢您的回答。
【问题讨论】:
标签:
jquery
validation
date
format
【解决方案1】:
感谢 Lalit 的回答,它有效。
jQuery.validator.setDefaults({
debug: true,
success: "valid"
});
jQuery.validator.addMethod(
"trioDate",
function(value, element) {
return value.match(/^\d{1,2}\/\d{4}$/);
},
"Please enter a date in the format mm/yyyy"
);
$('form[name="cc_frm"]').validate({
rules: {
dob: {
required : true,
trioDate:true
},
CardNumber: {
required: true,
creditcard: true
},
CardType: {
required: true
}
},
});
【解决方案2】:
您可以使用 addMethod 函数创建自己的自定义验证方法。假设您想验证“mm/yyyy”:
“日期”,
函数(值,元素){
// 把你自己的逻辑放在这里,这只是一个(蹩脚的)例子
返回值.match(/^\d\d?/\d\d\d\d$/);
},
“请以 mm/yyyy 格式输入日期。”
);并以您的形式 $('#myForm')
。证实({
规则:{
我的约会 : {
日期:真
}
}
})
;
【解决方案3】:
验证月份是一个月还是一年是很重要的。我对正则表达式模式进行了一些更改以提供帮助。
$.validator.addMethod('cardexpiry', function( value, element ) {
return value.match("(0[123456789]|10|11|12)([/])([1-2][0-9][0-9][0-9])");
}, "Precisa ser no formato mm/aaaa" );
2020 年更新
$.validator.addMethod('cardexpiry', function( value, element ) {
return value.match("(0[123456789]|10|11|12)([/])([2][0][2|3][0-9])");
}, "Parece que tem algo errado" );