Я пытаюсь подтвердить срок действия кредитной карты, введенной пользователем.Ex.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";
};
};