formatNumber method

String? formatNumber({
  1. required FormatType formatType,
  2. bool cleanNumber = true,
})

formatNumber

Returns string in the requested format. @throws LocalRegexException if the phone number is invalid.

cleanNumber

some phones autoformat contacts if true: strip all non digit chars from a phone number

e.g (077) 612-3098 -> 0776123098 (024) 212-3098 -> 0242123098

Implementation

String? formatNumber({
  required FormatType formatType,
  bool cleanNumber = true,
}) {
  String? number;
  final currentNumber = cleanNumber ? this.cleanNumber : this;

  if (LocalRegex.isZimMobile(currentNumber) ||
      LocalRegex.isZimVoip(currentNumber) ||
      LocalRegex.isZimLandline(currentNumber)) {
    switch (formatType) {
      case FormatType.countryCode:
        number = countryCodeFormat(currentNumber);
        break;
      case FormatType.countryCodePlus:
        number = countryCodePlusFormat(currentNumber);
        break;
      case FormatType.regular:
        number = regularFormat(currentNumber);
        break;
    }
  }

  // failed to format, invalid
  else {
    throw LocalRegexException('Phone number is not valid!');
  }

  return number;
}