function _postal_code_validation_validate_US in Postal Code Validation 7
Implements _postal_code_validation_validate_COUNTRYCODE().
File
- countries/
us.inc, line 11 - Postal code validation functions for United States.
Code
function _postal_code_validation_validate_US($postal_code) {
$return = array(
'country' => 'US',
);
if (preg_match('/^[0-9]{5}(-[0-9]{4}([0-9]{2})?)?$/', $postal_code)) {
$return['postal_code'] = $postal_code;
$zip_code_5 = intval(drupal_substr($postal_code, 0, 5));
$zip_code_prefix = intval(drupal_substr($postal_code, 0, 3));
if ($zip_code_5 === 96799) {
$return['province'] = 'AS';
}
elseif (in_array($zip_code_5, array(
96939,
96940,
), TRUE)) {
$return['province'] = 'PW';
}
elseif ($zip_code_5 >= 96941 && $zip_code_5 <= 96944) {
$return['province'] = 'FM';
}
elseif ($zip_code_5 >= 96950 && $zip_code_5 <= 96952) {
$return['province'] = 'MP';
}
elseif (in_array($zip_code_5, array(
96960,
96970,
), TRUE)) {
$return['province'] = 'MH';
}
elseif ($zip_code_prefix <= 4) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 5) {
$return['province'] = 'NY';
}
elseif ($zip_code_prefix <= 7) {
$return['province'] = 'PR';
$return['country'] = 'PR';
}
elseif ($zip_code_prefix <= 8) {
$return['province'] = 'VI';
$return['country'] = 'VI';
}
elseif ($zip_code_prefix <= 9) {
$return['province'] = 'PR';
$return['country'] = 'PR';
}
elseif ($zip_code_prefix <= 27) {
$return['province'] = 'MA';
}
elseif ($zip_code_prefix <= 29) {
$return['province'] = 'RI';
}
elseif ($zip_code_prefix <= 38) {
$return['province'] = 'NH';
}
elseif ($zip_code_prefix <= 49) {
$return['province'] = 'ME';
}
elseif ($zip_code_prefix <= 54) {
$return['province'] = 'VT';
}
elseif ($zip_code_prefix <= 55) {
$return['province'] = 'MA';
}
elseif ($zip_code_prefix <= 59) {
$return['province'] = 'VT';
}
elseif ($zip_code_prefix <= 69) {
$return['province'] = 'CT';
}
elseif ($zip_code_prefix <= 89) {
$return['province'] = 'NJ';
}
elseif ($zip_code_prefix <= 98) {
$return['province'] = 'AE';
}
elseif ($zip_code_prefix <= 99) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 149) {
$return['province'] = 'NY';
}
elseif ($zip_code_prefix <= 196) {
$return['province'] = 'PA';
}
elseif ($zip_code_prefix <= 199) {
$return['province'] = 'DE';
}
elseif ($zip_code_prefix <= 200) {
$return['province'] = 'DC';
}
elseif ($zip_code_prefix <= 201) {
$return['province'] = 'VA';
}
elseif ($zip_code_prefix <= 205) {
$return['province'] = 'DC';
}
elseif ($zip_code_prefix <= 212) {
$return['province'] = 'MD';
}
elseif ($zip_code_prefix <= 213) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 219) {
$return['province'] = 'MD';
}
elseif ($zip_code_prefix <= 246) {
$return['province'] = 'VA';
}
elseif ($zip_code_prefix <= 268) {
$return['province'] = 'WV';
}
elseif ($zip_code_prefix <= 269) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 289) {
$return['province'] = 'NC';
}
elseif ($zip_code_prefix <= 299) {
$return['province'] = 'SC';
}
elseif ($zip_code_prefix <= 319) {
$return['province'] = 'GA';
}
elseif ($zip_code_prefix <= 339) {
$return['province'] = 'FL';
}
elseif ($zip_code_prefix <= 340) {
$return['province'] = 'AA';
}
elseif ($zip_code_prefix <= 342) {
$return['province'] = 'FL';
}
elseif ($zip_code_prefix <= 343) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 344) {
$return['province'] = 'FL';
}
elseif ($zip_code_prefix <= 345) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 347) {
$return['province'] = 'FL';
}
elseif ($zip_code_prefix <= 348) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 349) {
$return['province'] = 'FL';
}
elseif ($zip_code_prefix <= 369) {
$return['province'] = 'AL';
}
elseif ($zip_code_prefix <= 385) {
$return['province'] = 'TN';
}
elseif ($zip_code_prefix <= 397) {
$return['province'] = 'MS';
}
elseif ($zip_code_prefix <= 399) {
$return['province'] = 'GA';
}
elseif ($zip_code_prefix <= 418) {
$return['province'] = 'KY';
}
elseif ($zip_code_prefix <= 419) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 427) {
$return['province'] = 'KY';
}
elseif ($zip_code_prefix <= 429) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 459) {
$return['province'] = 'OH';
}
elseif ($zip_code_prefix <= 479) {
$return['province'] = 'IN';
}
elseif ($zip_code_prefix <= 499) {
$return['province'] = 'MI';
}
elseif ($zip_code_prefix <= 516) {
$return['province'] = 'IA';
}
elseif ($zip_code_prefix <= 519) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 528) {
$return['province'] = 'IA';
}
elseif ($zip_code_prefix <= 529) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 532) {
$return['province'] = 'WI';
}
elseif ($zip_code_prefix <= 533) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 535) {
$return['province'] = 'WI';
}
elseif ($zip_code_prefix <= 536) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 549) {
$return['province'] = 'WI';
}
elseif ($zip_code_prefix <= 551) {
$return['province'] = 'MN';
}
elseif ($zip_code_prefix <= 552) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 567) {
$return['province'] = 'MN';
}
elseif ($zip_code_prefix <= 568) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 569) {
$return['province'] = 'DC';
}
elseif ($zip_code_prefix <= 577) {
$return['province'] = 'SD';
}
elseif ($zip_code_prefix <= 579) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 588) {
$return['province'] = 'ND';
}
elseif ($zip_code_prefix <= 589) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 599) {
$return['province'] = 'MT';
}
elseif ($zip_code_prefix <= 620) {
$return['province'] = 'IL';
}
elseif ($zip_code_prefix <= 621) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 629) {
$return['province'] = 'IL';
}
elseif ($zip_code_prefix <= 631) {
$return['province'] = 'MO';
}
elseif ($zip_code_prefix <= 632) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 641) {
$return['province'] = 'MO';
}
elseif ($zip_code_prefix <= 643) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 658) {
$return['province'] = 'MO';
}
elseif ($zip_code_prefix <= 659) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 662) {
$return['province'] = 'KS';
}
elseif ($zip_code_prefix <= 663) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 679) {
$return['province'] = 'KS';
}
elseif ($zip_code_prefix <= 681) {
$return['province'] = 'NE';
}
elseif ($zip_code_prefix <= 682) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 693) {
$return['province'] = 'NE';
}
elseif ($zip_code_prefix <= 699) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 701) {
$return['province'] = 'LA';
}
elseif ($zip_code_prefix <= 702) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 708) {
$return['province'] = 'LA';
}
elseif ($zip_code_prefix <= 709) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 714) {
$return['province'] = 'LA';
}
elseif ($zip_code_prefix <= 715) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 729) {
$return['province'] = 'AR';
}
elseif ($zip_code_prefix <= 731) {
$return['province'] = 'OK';
}
elseif ($zip_code_prefix <= 732) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 733) {
$return['province'] = 'TX';
}
elseif ($zip_code_prefix <= 741) {
$return['province'] = 'OK';
}
elseif ($zip_code_prefix <= 742) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 749) {
$return['province'] = 'OK';
}
elseif ($zip_code_prefix <= 770) {
$return['province'] = 'TX';
}
elseif ($zip_code_prefix <= 771) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 799) {
$return['province'] = 'TX';
}
elseif ($zip_code_prefix <= 816) {
$return['province'] = 'CO';
}
elseif ($zip_code_prefix <= 819) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 831) {
$return['province'] = 'WY';
}
elseif ($zip_code_prefix <= 838) {
$return['province'] = 'ID';
}
elseif ($zip_code_prefix <= 839) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 847) {
$return['province'] = 'UT';
}
elseif ($zip_code_prefix <= 849) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 853) {
$return['province'] = 'AZ';
}
elseif ($zip_code_prefix <= 854) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 857) {
$return['province'] = 'AZ';
}
elseif ($zip_code_prefix <= 858) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 860) {
$return['province'] = 'AZ';
}
elseif ($zip_code_prefix <= 862) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 865) {
$return['province'] = 'AZ';
}
elseif ($zip_code_prefix <= 869) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 875) {
$return['province'] = 'NM';
}
elseif ($zip_code_prefix <= 876) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 884) {
$return['province'] = 'NM';
}
elseif ($zip_code_prefix <= 885) {
$return['province'] = 'TX';
}
elseif ($zip_code_prefix <= 888) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 891) {
$return['province'] = 'NV';
}
elseif ($zip_code_prefix <= 892) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 895) {
$return['province'] = 'NV';
}
elseif ($zip_code_prefix <= 896) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 898) {
$return['province'] = 'NV';
}
elseif ($zip_code_prefix <= 899) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 908) {
$return['province'] = 'CA';
}
elseif ($zip_code_prefix <= 909) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 928) {
$return['province'] = 'CA';
}
elseif ($zip_code_prefix <= 929) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 961) {
$return['province'] = 'CA';
}
elseif ($zip_code_prefix <= 966) {
$return['province'] = 'AP';
}
elseif ($zip_code_prefix <= 968) {
// 967 also AS, handled above.
$return['province'] = 'HI';
}
elseif ($zip_code_prefix <= 969) {
// Also PW, FM, MP, MH, handled above.
$return['province'] = 'GU';
}
elseif ($zip_code_prefix <= 979) {
$return['province'] = 'OR';
}
elseif ($zip_code_prefix <= 986) {
$return['province'] = 'WA';
}
elseif ($zip_code_prefix <= 987) {
$return['province'] = FALSE;
}
elseif ($zip_code_prefix <= 994) {
$return['province'] = 'WA';
}
else {
$return['province'] = 'AK';
}
// Make country match "state" for non-US countries that use ZIP codes.
$dependencies = postal_code_validation_get_dependencies();
if (isset($dependencies[$return['province']]) && $dependencies[$return['province']] === 'US') {
$return['country'] = $return['province'];
}
}
else {
$return['error'] = t('Invalid ZIP code. ZIP codes in the United States and its dependencies are like "99999", "99999-9999", or "99999-999999".');
}
return $return;
}