processDate method
Attempts to extract the expiry date from the given text.
Returns the extracted expiry date in MM/YY format, or null if no date is found.
Implementation
String? processDate(String text) {
if (text.contains(RegExp(r'\/')) &&
text.length > 4 &&
text.length < 10 &&
checkCreditCardExpiryDate) {
if (text.contains('/')) {
// remove everything that is not a digit and not /
String cardExpirationMonthT = removeNonDigits(text.split('/').first);
String cardExpirationYearT = removeNonDigits(text.split('/').last);
if (cardExpirationMonthT.length == 1) {
cardExpirationMonthT = '0$cardExpirationMonth';
}
if (cardExpirationYearT.length >= 4) {
cardExpirationYearT = cardExpirationYearT.substring(2);
}
final fullText = '$cardExpirationMonthT/$cardExpirationYearT';
final x = _ccValidator.validateExpDate(fullText);
if (x.isValid) {
final pdate = parseDate(fullText);
if (pdate.length >= 2) {
cardExpirationMonth = pdate[0];
cardExpirationYear = pdate[1];
}
return fullExpiryDate;
}
// if (cardExpirationYearT.length == 2 &&
// cardExpirationMonthT.length == 2) {
// if (int.tryParse(cardExpirationYearT) != null &&
// int.tryParse(cardExpirationMonthT) != null) {
// cardExpirationMonth = cardExpirationMonthT;
// cardExpirationYear = cardExpirationYearT;
// }
// }
}
}
return fullExpiryDate.length > 4 ? fullExpiryDate : null;
}