validate method
- String? value
override
Validates the value and returns an error string if it fails,
or null if it passes.
Implementation
@override
String? validate(String? value) {
if (value == null || value.isEmpty) return null;
final sanitized = value.replaceAll(RegExp(r'[\s\-]'), '');
if (!RegExp(r'^\d+$').hasMatch(sanitized)) return message;
int sum = 0;
bool alternate = false;
for (int i = sanitized.length - 1; i >= 0; i--) {
int n = int.parse(sanitized[i]);
if (alternate) {
n *= 2;
if (n > 9) n -= 9;
}
sum += n;
alternate = !alternate;
}
if (sum % 10 != 0) return message;
return null;
}