Advertisement
Guest User

Untitled

a guest
Jul 18th, 2014
1,364
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.10 KB | None | 0 0
  1. <?php
  2.  
  3. // validation rules
  4. $postcode_validation = array
  5. (
  6.     'GB' => 'GIR[ ]?0AA|((AB|AL|B|BA|BB|BD|BH|BL|BN|BR|BS|BT|CA|CB|CF|CH|CM|CO|CR|CT|CV|CW|DA|DD|DE|DG|DH|DL|DN|DT|DY|E|EC|EH|EN|EX|FK|FY|G|GL|GY|GU|HA|HD|HG|HP|HR|HS|HU|HX|IG|IM|IP|IV|JE|KA|KT|KW|KY|L|LA|LD|LE|LL|LN|LS|LU|M|ME|MK|ML|N|NE|NG|NN|NP|NR|NW|OL|OX|PA|PE|PH|PL|PO|PR|RG|RH|RM|S|SA|SE|SG|SK|SL|SM|SN|SO|SP|SR|SS|ST|SW|SY|TA|TD|TF|TN|TQ|TR|TS|TW|UB|W|WA|WC|WD|WF|WN|WR|WS|WV|YO|ZE)(\d[\dA-Z]?[ ]?\d[ABD-HJLN-UW-Z]{2}))|BFPO[ ]?\d{1,4}',
  7.     'JE' => 'JE\d[\dA-Z]?[ ]?\d[ABD-HJLN-UW-Z]{2}',
  8.     'GG' => 'GY\d[\dA-Z]?[ ]?\d[ABD-HJLN-UW-Z]{2}',
  9.     'IM' => 'IM\d[\dA-Z]?[ ]?\d[ABD-HJLN-UW-Z]{2}',
  10.     'US' => '\d{5}([ \-]\d{4})?',
  11.     'CA' => '[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJ-NPRSTV-Z][ ]?\d[ABCEGHJ-NPRSTV-Z]\d',
  12.     'DE' => '\d{5}',
  13.     'JP' => '\d{3}-\d{4}',
  14.     'FR' => '\d{2}[ ]?\d{3}',
  15.     'AU' => '\d{4}',
  16.     'IT' => '\d{5}',
  17.     'CH' => '\d{4}',
  18.     'AT' => '\d{4}',
  19.     'ES' => '\d{5}',
  20.     'NL' => '\d{4}[ ]?[A-Z]{2}',
  21.     'BE' => '\d{4}',
  22.     'DK' => '\d{4}',
  23.     'SE' => '\d{3}[ ]?\d{2}',
  24.     'NO' => '\d{4}',
  25.     'BR' => '\d{5}[\-]?\d{3}',
  26.     'PT' => '\d{4}([\-]\d{3})?',
  27.     'FI' => '\d{5}',
  28.     'AX' => '22\d{3}',
  29.     'KR' => '\d{3}[\-]\d{3}',
  30.     'CN' => '\d{6}',
  31.     'TW' => '\d{3}(\d{2})?',
  32.     'SG' => '\d{6}',
  33.     'DZ' => '\d{5}',
  34.     'AD' => 'AD\d{3}',
  35.     'AR' => '([A-HJ-NP-Z])?\d{4}([A-Z]{3})?',
  36.     'AM' => '(37)?\d{4}',
  37.     'AZ' => '\d{4}',
  38.     'BH' => '((1[0-2]|[2-9])\d{2})?',
  39.     'BD' => '\d{4}',
  40.     'BB' => '(BB\d{5})?',
  41.     'BY' => '\d{6}',
  42.     'BM' => '[A-Z]{2}[ ]?[A-Z0-9]{2}',
  43.     'BA' => '\d{5}',
  44.     'IO' => 'BBND 1ZZ',
  45.     'BN' => '[A-Z]{2}[ ]?\d{4}',
  46.     'BG' => '\d{4}',
  47.     'KH' => '\d{5}',
  48.     'CV' => '\d{4}',
  49.     'CL' => '\d{7}',
  50.     'CR' => '\d{4,5}|\d{3}-\d{4}',
  51.     'HR' => '\d{5}',
  52.     'CY' => '\d{4}',
  53.     'CZ' => '\d{3}[ ]?\d{2}',
  54.     'DO' => '\d{5}',
  55.     'EC' => '([A-Z]\d{4}[A-Z]|(?:[A-Z]{2})?\d{6})?',
  56.     'EG' => '\d{5}',
  57.     'EE' => '\d{5}',
  58.     'FO' => '\d{3}',
  59.     'GE' => '\d{4}',
  60.     'GR' => '\d{3}[ ]?\d{2}',
  61.     'GL' => '39\d{2}',
  62.     'GT' => '\d{5}',
  63.     'HT' => '\d{4}',
  64.     'HN' => '(?:\d{5})?',
  65.     'HU' => '\d{4}',
  66.     'IS' => '\d{3}',
  67.     'IN' => '\d{6}',
  68.     'ID' => '\d{5}',
  69.     'IE' => '((D|DUBLIN)?([1-9]|6[wW]|1[0-8]|2[024]))?',
  70.     'IL' => '\d{5}',
  71.     'JO' => '\d{5}',
  72.     'KZ' => '\d{6}',
  73.     'KE' => '\d{5}',
  74.     'KW' => '\d{5}',
  75.     'LA' => '\d{5}',
  76.     'LV' => '\d{4}',
  77.     'LB' => '(\d{4}([ ]?\d{4})?)?',
  78.     'LI' => '(948[5-9])|(949[0-7])',
  79.     'LT' => '\d{5}',
  80.     'LU' => '\d{4}',
  81.     'MK' => '\d{4}',
  82.     'MY' => '\d{5}',
  83.     'MV' => '\d{5}',
  84.     'MT' => '[A-Z]{3}[ ]?\d{2,4}',
  85.     'MU' => '(\d{3}[A-Z]{2}\d{3})?',
  86.     'MX' => '\d{5}',
  87.     'MD' => '\d{4}',
  88.     'MC' => '980\d{2}',
  89.     'MA' => '\d{5}',
  90.     'NP' => '\d{5}',
  91.     'NZ' => '\d{4}',
  92.     'NI' => '((\d{4}-)?\d{3}-\d{3}(-\d{1})?)?',
  93.     'NG' => '(\d{6})?',
  94.     'OM' => '(PC )?\d{3}',
  95.     'PK' => '\d{5}',
  96.     'PY' => '\d{4}',
  97.     'PH' => '\d{4}',
  98.     'PL' => '\d{2}-\d{3}',
  99.     'PR' => '00[679]\d{2}([ \-]\d{4})?',
  100.     'RO' => '\d{6}',
  101.     'RU' => '\d{6}',
  102.     'SM' => '4789\d',
  103.     'SA' => '\d{5}',
  104.     'SN' => '\d{5}',
  105.     'SK' => '\d{3}[ ]?\d{2}',
  106.     'SI' => '\d{4}',
  107.     'ZA' => '\d{4}',
  108.     'LK' => '\d{5}',
  109.     'TJ' => '\d{6}',
  110.     'TH' => '\d{5}',
  111.     'TN' => '\d{4}',
  112.     'TR' => '\d{5}',
  113.     'TM' => '\d{6}',
  114.     'UA' => '\d{5}',
  115.     'UY' => '\d{5}',
  116.     'UZ' => '\d{6}',
  117.     'VA' => '00120',
  118.     'VE' => '\d{4}',
  119.     'ZM' => '\d{5}',
  120.     'AS' => '96799',
  121.     'CC' => '6799',
  122.     'CK' => '\d{4}',
  123.     'RS' => '\d{6}',
  124.     'ME' => '8\d{4}',
  125.     'CS' => '\d{5}',
  126.     'YU' => '\d{5}',
  127.     'CX' => '6798',
  128.     'ET' => '\d{4}',
  129.     'FK' => 'FIQQ 1ZZ',
  130.     'NF' => '2899',
  131.     'FM' => '(9694[1-4])([ \-]\d{4})?',
  132.     'GF' => '9[78]3\d{2}',
  133.     'GN' => '\d{3}',
  134.     'GP' => '9[78][01]\d{2}',
  135.     'GS' => 'SIQQ 1ZZ',
  136.     'GU' => '969[123]\d([ \-]\d{4})?',
  137.     'GW' => '\d{4}',
  138.     'HM' => '\d{4}',
  139.     'IQ' => '\d{5}',
  140.     'KG' => '\d{6}',
  141.     'LR' => '\d{4}',
  142.     'LS' => '\d{3}',
  143.     'MG' => '\d{3}',
  144.     'MH' => '969[67]\d([ \-]\d{4})?',
  145.     'MN' => '\d{6}',
  146.     'MP' => '9695[012]([ \-]\d{4})?',
  147.     'MQ' => '9[78]2\d{2}',
  148.     'NC' => '988\d{2}',
  149.     'NE' => '\d{4}',
  150.     'VI' => '008(([0-4]\d)|(5[01]))([ \-]\d{4})?',
  151.     'PF' => '987\d{2}',
  152.     'PG' => '\d{3}',
  153.     'PM' => '9[78]5\d{2}',
  154.     'PN' => 'PCRN 1ZZ',
  155.     'PW' => '96940',
  156.     'RE' => '9[78]4\d{2}',
  157.     'SH' => '(ASCN|STHL) 1ZZ',
  158.     'SJ' => '\d{4}',
  159.     'SO' => '\d{5}',
  160.     'SZ' => '[HLMS]\d{3}',
  161.     'TC' => 'TKCA 1ZZ',
  162.     'WF' => '986\d{2}',
  163.     'YT' => '976\d{2}'
  164. );
  165.  
  166. // helper function
  167. function isPostcodeValid($country, $postcode)
  168. {
  169.     // Load Mapping
  170.     global $postcode_validation;
  171.  
  172.     // Check If Country Exists
  173.     if (!array_key_exists($country, $postcode_validation))
  174.         return false;
  175.  
  176.     // Check Postcode
  177.     $validation_rule = $postcode_validation[$country];
  178.     return (preg_match("/^$validation_rule$/", $postcode) == 1);
  179. }
  180.  
  181. // Test
  182. $myCountry = 'US';
  183. $myPostcode = '12345-4321';
  184. var_dump(isPostcodeValid($myCountry, $myPostcode));
  185.  
  186. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement