javascript - JS中如何判断日期是否为完整日期和年份

标签 javascript regex date

我有下面的正则表达式代码来验证有效日期。

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/

相关文章:

javascript - 大量对象上的 JSON.parse() 使用的内存超出了应有的范围

javascript - 根据下拉列表中选择的值设置日期时间选择器格式

regex - 如何在 scala 中用 literal\d 替换所有数字?

javascript - 如何提取嵌入标签的 src 属性

android - 安卓错误 "week of year"

swift - 将日期添加到日期并计算差异不会导致预期结果

javascript - 如何在azure网站子目录中运行node.js应用程序

regex - 如何匹配以字符串开头的字符串(使用正则表达式)

date - 如何舍入 Pandas `DatetimeIndex` ?

javascript - jQuery Mobile ListView 按钮不可见