In JavaScript possiamo validare la data di scadenza di una carta di credito.
La soluzione รจ la seguente.
'use strict';
const isValidCardExpireDate = value => {
// Il valore del campo del form è sintatticamente valido? (mm/aa)
if(!/^\d{2}\/\d{2}$/.test(value)) {
return false;
}
let parts = value.split('/');
let cardMonth = (parts[0][0] === '0') ? parseInt(parts[0][1], 10) : parseInt(parts[0], 10);
let cardYear = parseInt('20' + parts[1], 10);
let now = new Date();
let year = now.getFullYear();
let month = now.getMonth() + 1;
// Il mese è valido?
if(cardMonth > 12 || cardMonth < 1) {
return false;
}
// L'anno è superiore o uguale a quello corrente?
if(cardYear < year) {
return false;
}
/* Se l'anno coincide con quello corrente ma il mese è superiore,
* la carta è scaduta.
*/
if(cardMonth > month && cardYear === year ) {
return false;
}
return true;
};