function validateExpiry (input) {
// ensure basic format is correct
if (input.match(/^((0[1-9]|1[0-2])\/\d{2})$/)) {
const {0: month, 1: year} = input.split("/");
// get midnight of first day of the next month
const expiry = new Date("20" + year, month);
const current = new Date();
return expiry.getTime() > current.getTime();
} else return false;
}
console.log("01/32", validateExpiry("01/32"));
console.log("01/19", validateExpiry("04/18"));
console.log("05/18", validateExpiry("05/18"));
console.log("05.18", validateExpiry("05.18"));
console.log("00/23", validateExpiry("00/23"));
console.log("invalid", validateExpiry("invalid"));
1条答案
按热度按时间zzlelutf1#
如果你想追求正确性,如果你使用JavaScript的Date API,你可以做一个更正确的日期验证。例如:
字符串