formatAsPhoneNumber method
Formats string as a phone number based on length
Example:
"1234567890".formatAsPhoneNumber(); // Returns "(123) 456-7890"
"123456".formatAsPhoneNumber(); // Returns "12-34-56"
Implementation
String formatAsPhoneNumber() {
if (isEmpty) return this;
final digitsOnly = replaceAll(RegExp(r'\D'), '');
if (digitsOnly.length == 10) {
return "(${digitsOnly.substring(0, 3)}) ${digitsOnly.substring(3, 6)}-${digitsOnly.substring(6)}";
} else if (digitsOnly.length > 6) {
// Format as international number or custom format for different lengths
return "${digitsOnly.substring(0, 3)}-${digitsOnly.substring(3, 6)}-${digitsOnly.substring(6)}";
} else if (digitsOnly.length > 4) {
return "${digitsOnly.substring(0, 2)}-${digitsOnly.substring(2, 4)}-${digitsOnly.substring(4)}";
}
return digitsOnly;
}