使用 JQuery Validate 验证“mm-dd-yyyy”和“mm/dd/yyyy”格式的日期。
我已尝试使用一种格式使用此代码,但是,我的代码(如下所示)不适用于“mm-dd-yyyy”和“mm/dd/yyyy”格式。 我的代码:
$(document).on('blur','.dateValidation',function(){
var input=$(this).val();
var r = /^(\d{1,2})\/(\d{1,2})\/(\d{4})$/;
if(!r.test(input)) {
alert("Invalid Input");
return;
}
var a = input.match(r), d = new Date(a[3],a[1] - 1,a[2]);
if(d.getFullYear() != a[3] || d.getMonth() + 1 != a[1] || d.getDate() != a[2]) {
alert("Invalid Date");
return;
}
});
最佳答案
您可以将您支持的日期格式放入一个数组中并对其进行循环。例如,使用这样的函数:
function isValidDate(input) {
var regexes = [
/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/,
/^(\d{1,2})\-(\d{1,2})\-(\d{4})$/
];
for (var i = 0; i < regexes.length; i++) {
var r = regexes[i];
if(!r.test(input)) {
continue;
}
var a = input.match(r), d = new Date(a[3],a[1] - 1,a[2]);
if(d.getFullYear() != a[3] || d.getMonth() + 1 != a[1] || d.getDate() != a[2]) {
continue;
}
// All checks passed:
return true;
}
return false;
}
然后你从代码中调用它,如下所示:
$(document).on('blur','.dateValidation',function(){
var isValid = isValidDate($(this).val());
if (isValid) {
alert('Valid date');
} else {
alert('Invalid date');
}
});
关于javascript - 使用 JQuery Validate 验证 'mm-dd-yyyy' 和 'mm/dd/yyyy' 格式的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40762618/