【问题标题】:How to determine if the date is full date and year only in JS如何仅在JS中确定日期是否为完整日期和年份
【发布时间】:2017-01-04 06:22:37
【问题描述】:

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

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 个条件。在这一行中,我正在测试日期是完整日期(2017 年 1 月 1 日)还是(2017 年)。如果我输入这两个不同的日期,它会因为条件返回 false。如何做到这一点?

【问题讨论】:

  • 我不确定你到底在问什么。请澄清
  • 如果您只是想要一个正则表达式来测试“1/1/2017”或“2017”的模式,它们可能比您拥有的要简单得多,例如 /$\d{1,2}\/\d{1,2}\/\d{4}$//^\d{4}$/ .如果您还想验证这些值,那就另当别论了(不应该使用正则表达式)。
  • @Rajesh 如果用户输入 2017 年 1 月 1 日或 2017 年,它将返回为真。否则返回 false。
  • regs 似乎正在测试“/2017”。
  • @RobG 是的。但我在else 条件下遇到问题

标签: javascript regex date


【解决方案1】:

选择日期和月份:

var reg = /^(?:(0?\d|1[012])\/(0?[1-9]|[12]\d|30|31)\/)?\d{1,4}$/;
//          ^^^                                       ^^  

【讨论】:

    猜你喜欢
    • 2018-06-18
    • 1970-01-01
    • 1970-01-01
    • 2020-06-04
    • 2013-10-08
    • 2018-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多