validatePhoneNumber static method
for phone number validation
Implementation
static bool validatePhoneNumber(String phoneNumber) {
Map<String, int> countryPhoneLengths = {
'AF': 9, // Afghanistan
'AL': 9, // Albania
'DZ': 9, // Algeria
'US': 10, // United States
'AD': 6, // Andorra
'AO': 9, // Angola
'AR': 10, // Argentina
'AM': 8, // Armenia
'AU': 9, // Australia
'AT': 10, // Austria
'AZ': 9, // Azerbaijan
'BB': 7, // Barbados
'BH': 8, // Bahrain
'BD': 10, // Bangladesh
'BY': 9, // Belarus
'BE': 9, // Belgium
'BZ': 7, // Belize
'BJ': 8, // Benin
'BT': 8, // Bhutan
'BO': 8, // Bolivia
'BA': 8, // Bosnia and Herzegovina
'BW': 7, // Botswana
'BR': 11, // Brazil
'BN': 7, // Brunei
'BG': 9, // Bulgaria
'BF': 8, // Burkina Faso
'BI': 8, // Burundi
'KH': 9, // Cambodia
'CM': 9, // Cameroon
'CA': 10, // Canada
'CV': 7, // Cape Verde
'CF': 8, // Central African Republic
'TD': 8, // Chad
'CL': 9, // Chile
'CN': 11, // China
'CO': 10, // Colombia
'KM': 7, // Comoros
'CG': 9, // Congo
'CD': 9, // Congo, Democratic Republic of the
'CK': 5, // Cook Islands
'CR': 8, // Costa Rica
'HR': 9, // Croatia
'CU': 8, // Cuba
'CY': 8, // Cyprus
'CZ': 9, // Czech Republic
'DK': 8, // Denmark
'DJ': 6, // Djibouti
'DM': 10, // Dominica
'DO': 10, // Dominican Republic
'EC': 9, // Ecuador
'EG': 10, // Egypt
'SV': 8, // El Salvador
'GQ': 9, // Equatorial Guinea
'ER': 7, // Eritrea
'EE': 7, // Estonia
'ET': 9, // Ethiopia
'FJ': 7, // Fiji
'FI': 10, // Finland
'FR': 9, // France
'GA': 7, // Gabon
'GM': 7, // Gambia
'GE': 9, // Georgia
'DE': 10, // Germany
'GH': 9, // Ghana
'GR': 10, // Greece
'GL': 6, // Greenland
'GT': 8, // Guatemala
'GN': 9, // Guinea
'GW': 7, // Guinea-Bissau
'GY': 7, // Guyana
'HT': 8, // Haiti
'HN': 8, // Honduras
'HK': 8, // Hong Kong
'HU': 9, // Hungary
'IS': 7, // Iceland
'IN': 10, // India
'ID': 10, // Indonesia
'IR': 10, // Iran
'IQ': 10, // Iraq
'IE': 9, // Ireland
'IL': 9, // Israel
'IT': 10, // Italy
'CI': 8, // Ivory Coast
'JM': 7, // Jamaica
'JP': 10, // Japan
'JO': 9, // Jordan
'KZ': 10, // Kazakhstan
'KE': 10, // Kenya
'KI': 8, // Kiribati
'KW': 8, // Kuwait
'KG': 9, // Kyrgyzstan
'LA': 9, // Laos
'LV': 8, // Latvia
'LB': 8, // Lebanon
'LS': 8, // Lesotho
'LR': 7, // Liberia
'LY': 10, // Libya
'VC': 7, // Saint Vincent and the Grenadines
'LC': 7, // Saint Lucia
'LI': 7, // Liechtenstein
'LT': 8, // Lithuania
'LU': 9, // Luxembourg
'MO': 8, // Macau
'MK': 8, // Macedonia
'TT': 7, // Trinidad and Tobago
'KN': 7, // Saint Kitts and Nevis,
'MG': 9, // Madagascar
'MW': 9, // Malawi
'MY': 10, // Malaysia
'MV': 7, // Maldives
'ML': 8, // Mali
'MT': 8, // Malta
'MH': 7, // Marshall Islands
'MR': 8, // Mauritania
'MU': 8, // Mauritius
'MX': 10, // Mexico
'FM': 7, // Micronesia
'MD': 8, // Moldova
'MC': 8, // Monaco
'MN': 8, // Mongolia
'ME': 8, // Montenegro
'MA': 9, // Morocco
'MZ': 9, // Mozambique
'MM': 9, // Myanmar
'NA': 9, // Namibia
'NR': 7, // Nauru
'NP': 10, // Nepal
'NL': 9, // Netherlands
'NZ': 8, // New Zealand
'NI': 8, // Nicaragua
'NE': 8, // Niger
'NG': 10, // Nigeria
'NO': 8, // Norway
'OM': 8, // Oman
'PK': 10, // Pakistan
'PW': 7, // Palau
'PA': 8, // Panama
'PG': 8, // Papua New Guinea
'PY': 9, // Paraguay
'PE': 9, // Peru
'PH': 10, // Philippines
'PL': 9, // Poland
'PT': 9, // Portugal
'QA': 8, // Qatar
'RO': 10, // Romania
'RU': 10, // Russia
'RW': 9, // Rwanda
'WS': 7, // Samoa
'SM': 9, // San Marino
'ST': 7, // Sao Tome and Principe
'SA': 9, // Saudi Arabia
'SN': 9, // Senegal
'RS': 9, // Serbia
'SC': 7, // Seychelles
'SL': 8, // Sierra Leone
'SG': 8, // Singapore
'SK': 9, // Slovakia
'SI': 9, // Slovenia
'SB': 7, // Solomon Islands
'SO': 7, // Somalia
'ZA': 9, // South Africa
'KR': 10, // South Korea
'SS': 9, // South Sudan
'ES': 9, // Spain
'LK': 9, // Sri Lanka
'SD': 9, // Sudan
'SR': 7, // Suriname
'SZ': 8, // Eswatini
'SE': 9, // Sweden
'CH': 9, // Switzerland
'SY': 9, // Syria
'TW': 9, // Taiwan
'TJ': 9, // Tajikistan
'TZ': 9, // Tanzania
'TH': 9, // Thailand
'TG': 8, // Togo
'TO': 7, // Tonga
'TN': 8, // Tunisia
'TR': 10, // Turkey
'TM': 8, // Turkmenistan
'TV': 6, // Tuvalu
'UG': 9, // Uganda
'UA': 9, // Ukraine
'AE': 9, // United Arab Emirates
'GB': 10, // United Kingdom
'UY': 9, // Uruguay
'UZ': 9, // Uzbekistan
'VU': 7, // Vanuatu
'VE': 10, // Venezuela
'VN': 9, // Vietnam
'YE': 9, // Yemen
'ZM': 9, // Zambia
'ZW': 9 // Zimbabwe
};
int? expectedLength = countryPhoneLengths[countryCode];
if (expectedLength != null) {
return phoneNumber.length == expectedLength;
}
return false;
}