如何在 javascript 中验证整数是否为验证日期

How to validate whether an integer is a validate date in javascript?

本文关键字:验证 整数 是否 日期 javascript      更新时间:2023-09-26

用户需要输入一个字符串作为整数,也输入一个日期,格式为yyyymmdd,如20150127

它必须是纯整数和绝对验证日期。例如,2015001120150230将无效。

我目前的做法只是简单地将字符串分成yearmonthday,然后尝试自己验证它们。例如,month必须在[1,12]范围内,等等。

但理想情况下,我想尝试将其解析为正确的日期,否则,我无法处理一个月缺少一天的情况,例如 2 月或 4 月没有 31 等。

如何完美地进行此验证?

function parseDate(str) {
    var y = str.substr(0,4),
        m = str.substr(4,2) - 1,
        d = str.substr(6,2);
    var D = new Date(y,m,d);
    return (D.getFullYear() == y && D.getMonth() == m && D.getDate() == d) ? D : false;
}
console.log(parseDate('20150131')); // returns Sat Jan 31 2015 00:00:00 GMT+0100 (W. Europe Standard Time)
console.log(parseDate('20150231')); // returns false

您可以使用"moment.js"javascript库进行验证。

var m = moment("2011-10-10T10:20:90");
m.isValid(); // false