我有下面的正则表达式代码来验证有效日期。
function isValidDate(div) {
var reg = /^((0?\d)|(1[012]))\/([012]?\d|30|31)\/\d{1,4}$/;
var regs = /^\/\d{1,4}$/;
var dateField = $(div).val();
if (dateField == "") {
//alert('Invalid inclusive dates.');
return false;
} else {
if (reg.test(dateField) == false && regs.test(dateField) == false) {
// alert('Invalid inclusive dates.');
return false;
} else {
return true;
}
}
}
我正在测试这段代码,你可以看到我在 if (reg.test(dateField) == false && regs.test(dateField) == false) {
中有 2 个条件。在这一行中,我正在测试日期是否为完整日期(1/1/2017)或(2017)。如果我输入两个不同的日期,由于条件的原因,它会返回 false。如何实现这一目标?
最佳答案
将日期和月份设为可选:
var reg = /^(?:(0?\d|1[012])\/(0?[1-9]|[12]\d|30|31)\/)?\d{1,4}$/;
// ^^^ ^^
关于javascript - JS中如何判断日期是否为完整日期和年份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41457424/