validatePostalCode static method

String? validatePostalCode(
  1. String? value, {
  2. String countryCode = 'US',
})

Validate postal code

Implementation

static String? validatePostalCode(String? value,
    {String countryCode = 'US'}) {
  if (value == null || value.isEmpty) {
    return 'Postal code is required.';
  }

  RegExp postalCodeRegExp;

  switch (countryCode.toUpperCase()) {
    case 'US':
      postalCodeRegExp = RegExp(r'^\d{5}(-\d{4})?$');
      break;
    case 'UK':
      postalCodeRegExp = RegExp(r'^[A-Z]{1,2}[0-9][A-Z0-9]? ?[0-9][A-Z]{2}$');
      break;
    case 'CA':
      postalCodeRegExp = RegExp(r'^[A-Z]\d[A-Z] ?\d[A-Z]\d$');
      break;
    default:
      postalCodeRegExp = RegExp(r'^[A-Z0-9\s-]{3,10}$');
  }

  if (!postalCodeRegExp.hasMatch(value.toUpperCase())) {
    return 'Invalid postal code format for $countryCode.';
  }

  return null;
}