validate method
Validates the control
.
Implementation
@override
Map<String, dynamic>? validate(AbstractControl<dynamic> control) {
final error = <String, dynamic>{ValidationMessage.creditCard: true};
// error if value is not a String
if (control.value != null && control.value is! String) {
return error;
}
final cardNumber = control.value.toString().replaceAll(' ', '');
final isNumber = NumberValidator.numberRegex.hasMatch(cardNumber);
return isNumber &&
cardNumber.length >= 13 &&
cardNumber.length <= 19 &&
checkLuhn(cardNumber)
? null
: error;
}