用户需要输入一个字符串作为整数,也需要输入yyyymmdd
格式的日期,如20150127
。
它必须是纯整数和绝对验证日期。例如,20150011
或20150230
无效。
我目前的做法只是将字符串拆分为year
,month
,day
,然后尝试自行验证。例如,month
必须在[1,12]
等内。
但理想情况下,我想尝试将其解析为正确的日期,否则,我无法处理一天缺少一个月的情况,例如2月或4月没有31等。
如何完美地完成此验证?
答案 0 :(得分:3)
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
答案 1 :(得分:1)
您可以使用“moment.js”javascript库进行验证。
var m = moment("2011-10-10T10:20:90");
m.isValid(); // false