我正在尝试验证用户输入的信用卡的到期日期。示例12/2019 还要尝试确保用户输入有效的月份(1-12)和有效的年份(> 2018)。
以下是到目前为止我一直在研究的代码,到目前为止还没有工作。
您能看到我的代码有什么问题吗?实现我的有效期验证目标的最佳方法是什么?
HTML:
<input name="exp_date" id="exp_date" type="text" maxlength="7" onChange="validateExp()" placeholder="MM / YYYY ">
<br>
<span id="error4" ></span>
<br>
JS:
function validateExp(){
var expire = document.getElementById("exp_date");
var d = new Date();
var currentYear = d.getFullYear();
var currentMonth = d.getMonth() + 1;
// get parts of the expiration date
var parts = expire.toString().split(/[-\/]+/);
var year = parseInt(parts[1], 10);
var month = parseInt(parts[0], 10);
// compare the dates
if (year < currentYear || (year == currentYear && month < currentMonth)) {
error4.innerHTML = "The expiry date has passed.\n";
}else if (month > 12){
error4.innerHTML = "Invalid month.\n";
};
};