extractCardNumber static method
Implementation
static String? extractCardNumber(String text) {
// Match 13-19 digit card numbers with optional separators
final regExp = RegExp(r'(\d[ -]*?){13,19}');
final matches = regExp.allMatches(text);
for (final match in matches) {
final cleaned = match.group(0)!.replaceAll(RegExp(r'[^\d]'), '');
// Validate card number length
if (cleaned.length >= 13 && cleaned.length <= 19) {
// Format as spaced groups
return cleaned.replaceAllMapped(
RegExp(r'.{4}'),
(match) => '${match.group(0)} ',
).trim();
}
}
return null;
}