src/config/zipcodes.js
export const zipcodes = {
AA: ['340'],
AE: ['090', '091', '092', '093', '094', '095', '096', '097', '098', '099'],
AP: ['962', '963', '964', '965', '966'],
AK: ['995', '996', '997', '998', '999'],
AL: [
'350',
'351',
'352',
'354',
'355',
'356',
'357',
'358',
'359',
'360',
'361',
'362',
'363',
'364',
'365',
'366',
'367',
'368',
'369'
],
AR: [
'716',
'717',
'718',
'719',
'720',
'721',
'722',
'723',
'724',
'725',
'726',
'727',
'728',
'729'
],
AS: ['967'],
AZ: [
'850',
'851',
'852',
'853',
'855',
'856',
'857',
'859',
'860',
'863',
'864',
'865'
],
CA: [
'900',
'901',
'902',
'903',
'904',
'905',
'906',
'907',
'908',
'910',
'911',
'912',
'913',
'914',
'915',
'916',
'917',
'918',
'919',
'920',
'921',
'922',
'923',
'924',
'925',
'926',
'927',
'928',
'930',
'931',
'932',
'933',
'934',
'935',
'936',
'937',
'938',
'939',
'940',
'941',
'942',
'943',
'944',
'945',
'946',
'947',
'948',
'949',
'950',
'951',
'952',
'953',
'954',
'955',
'956',
'957',
'958',
'959',
'960',
'961'
],
CO: [
'800',
'801',
'802',
'803',
'804',
'805',
'806',
'807',
'808',
'809',
'810',
'811',
'812',
'813',
'814',
'815',
'816'
],
CT: ['060', '061', '062', '063', '064', '065', '066', '067', '068', '069'],
DC: ['200', '202', '203', '204', '205', '569'],
DE: ['197', '198', '199'],
FL: [
'320',
'321',
'322',
'323',
'324',
'325',
'326',
'327',
'328',
'329',
'330',
'331',
'332',
'333',
'334',
'335',
'336',
'337',
'338',
'339',
'341',
'342',
'344',
'346',
'347',
'349'
],
FM: ['969'],
GA: [
'300',
'301',
'302',
'303',
'304',
'305',
'306',
'307',
'308',
'309',
'310',
'311',
'312',
'313',
'314',
'315',
'316',
'317',
'318',
'319',
'398',
'399'
],
GU: ['969'],
HI: ['967', '968'],
IA: [
'500',
'501',
'502',
'503',
'504',
'505',
'506',
'507',
'508',
'509',
'510',
'511',
'512',
'513',
'514',
'515',
'516',
'520',
'521',
'522',
'523',
'524',
'525',
'526',
'527',
'528'
],
ID: ['832', '833', '834', '835', '836', '837', '838'],
IL: [
'600',
'601',
'602',
'603',
'604',
'605',
'606',
'607',
'608',
'609',
'610',
'611',
'612',
'613',
'614',
'615',
'616',
'617',
'618',
'619',
'620',
'622',
'623',
'624',
'625',
'626',
'627',
'628',
'629'
],
IN: [
'460',
'461',
'462',
'463',
'464',
'465',
'466',
'467',
'468',
'469',
'470',
'471',
'472',
'473',
'474',
'475',
'476',
'477',
'478',
'479'
],
KS: [
'660',
'661',
'662',
'664',
'665',
'666',
'667',
'668',
'669',
'670',
'671',
'672',
'673',
'674',
'675',
'676',
'677',
'678',
'679'
],
KY: [
'400',
'401',
'402',
'403',
'404',
'405',
'406',
'407',
'408',
'409',
'410',
'411',
'412',
'413',
'414',
'415',
'416',
'417',
'418',
'420',
'421',
'422',
'423',
'424',
'425',
'426',
'427'
],
LA: [
'700',
'701',
'703',
'704',
'705',
'706',
'707',
'708',
'710',
'711',
'712',
'713',
'714'
],
MA: [
'010',
'011',
'012',
'013',
'014',
'015',
'016',
'017',
'018',
'019',
'020',
'021',
'022',
'023',
'024',
'025',
'026',
'027',
'055'
],
MD: [
'206',
'207',
'208',
'209',
'210',
'211',
'212',
'214',
'215',
'216',
'217',
'218',
'219'
],
ME: [
'039',
'040',
'041',
'042',
'043',
'044',
'045',
'046',
'047',
'048',
'049'
],
MH: ['969'],
MI: [
'480',
'481',
'482',
'483',
'484',
'485',
'486',
'487',
'488',
'489',
'490',
'491',
'492',
'493',
'494',
'495',
'496',
'497',
'498',
'499'
],
MN: [
'550',
'551',
'553',
'554',
'555',
'556',
'557',
'558',
'559',
'560',
'561',
'562',
'563',
'564',
'565',
'566',
'567'
],
MO: [
'630',
'631',
'633',
'634',
'635',
'636',
'637',
'638',
'639',
'640',
'641',
'644',
'645',
'646',
'647',
'648',
'649',
'650',
'651',
'652',
'653',
'654',
'655',
'656',
'657',
'658'
],
MP: ['969'],
MS: [
'386',
'387',
'388',
'389',
'390',
'391',
'392',
'393',
'394',
'395',
'396',
'397'
],
MT: ['590', '591', '592', '593', '594', '595', '596', '597', '598', '599'],
NC: [
'270',
'271',
'272',
'273',
'274',
'275',
'276',
'277',
'278',
'279',
'280',
'281',
'282',
'283',
'284',
'285',
'286',
'287',
'288',
'289'
],
ND: ['580', '581', '582', '583', '584', '585', '586', '587', '588'],
NE: [
'680',
'681',
'683',
'684',
'685',
'686',
'687',
'688',
'689',
'690',
'691',
'692',
'693'
],
NH: ['030', '031', '032', '033', '034', '035', '036', '037', '038'],
NJ: [
'070',
'071',
'072',
'073',
'074',
'075',
'076',
'077',
'078',
'079',
'080',
'081',
'082',
'083',
'084',
'085',
'086',
'087',
'088',
'089'
],
NM: [
'870',
'871',
'873',
'874',
'875',
'877',
'878',
'879',
'880',
'881',
'882',
'883',
'884'
],
NV: ['889', '890', '891', '893', '894', '895', '897', '898'],
NY: [
'005',
'100',
'101',
'102',
'103',
'104',
'105',
'106',
'107',
'108',
'109',
'110',
'111',
'112',
'113',
'114',
'115',
'116',
'117',
'118',
'119',
'120',
'121',
'122',
'123',
'124',
'125',
'126',
'127',
'128',
'129',
'130',
'131',
'132',
'133',
'134',
'135',
'136',
'137',
'138',
'139',
'140',
'141',
'142',
'143',
'144',
'145',
'146',
'147',
'148',
'149'
],
OH: [
'430',
'431',
'432',
'433',
'434',
'435',
'436',
'437',
'438',
'439',
'440',
'441',
'442',
'443',
'444',
'445',
'446',
'447',
'448',
'449',
'450',
'451',
'452',
'453',
'454',
'455',
'456',
'457',
'458',
'459'
],
OK: [
'730',
'731',
'734',
'735',
'736',
'737',
'738',
'739',
'740',
'741',
'743',
'744',
'745',
'746',
'747',
'748',
'749'
],
OR: ['970', '971', '972', '973', '974', '975', '976', '977', '978', '979'],
PA: [
'150',
'151',
'152',
'153',
'154',
'155',
'156',
'157',
'158',
'159',
'160',
'161',
'162',
'163',
'164',
'165',
'166',
'167',
'168',
'169',
'170',
'171',
'172',
'173',
'174',
'175',
'176',
'177',
'178',
'179',
'180',
'181',
'182',
'183',
'184',
'185',
'186',
'187',
'188',
'189',
'190',
'191',
'192',
'193',
'194',
'195',
'196'
],
PR: ['006', '007', '009'],
PW: ['969'],
RI: ['028', '029'],
SC: ['290', '291', '292', '293', '294', '295', '296', '297', '298', '299'],
SD: ['570', '571', '572', '573', '574', '575', '576', '577'],
TN: [
'370',
'371',
'372',
'373',
'374',
'375',
'376',
'377',
'378',
'379',
'380',
'381',
'382',
'383',
'384',
'385'
],
TX: [
'733',
'750',
'751',
'752',
'753',
'754',
'755',
'756',
'757',
'758',
'759',
'760',
'761',
'762',
'763',
'764',
'765',
'766',
'767',
'768',
'769',
'770',
'772',
'773',
'774',
'775',
'776',
'777',
'778',
'779',
'780',
'781',
'782',
'783',
'784',
'785',
'786',
'787',
'788',
'789',
'790',
'791',
'792',
'793',
'794',
'795',
'796',
'797',
'798',
'799',
'885'
],
UT: ['840', '841', '842', '843', '844', '845', '846', '847'],
VA: [
'201',
'220',
'221',
'222',
'223',
'224',
'225',
'226',
'227',
'228',
'229',
'230',
'231',
'232',
'233',
'234',
'235',
'236',
'237',
'238',
'239',
'240',
'241',
'242',
'243',
'244',
'245',
'246'
],
VI: ['008'],
VT: ['050', '051', '052', '053', '054', '056', '057', '058', '059'],
WA: [
'980',
'981',
'982',
'983',
'984',
'985',
'986',
'988',
'989',
'990',
'991',
'992',
'993',
'994'
],
WI: [
'530',
'531',
'532',
'534',
'535',
'537',
'538',
'539',
'540',
'541',
'542',
'543',
'544',
'545',
'546',
'547',
'548',
'549'
],
WV: [
'247',
'248',
'249',
'250',
'251',
'252',
'253',
'254',
'255',
'256',
'257',
'258',
'259',
'260',
'261',
'262',
'263',
'264',
'265',
'266',
'267',
'268'
],
WY: [
'820',
'821',
'822',
'823',
'824',
'825',
'826',
'827',
'828',
'829',
'830',
'831'
]
}
const crossStateZips = {
MD: ['20588'],
NY: ['06390'],
TX: ['73960'],
VA: ['20598'],
WY: ['83414']
}
export const isZipcodeState = (stateCode = '', zipCode = '') => {
const code = stateCode.toUpperCase()
if (!zipcodes[code]) return false
const zip3Digit = zipCode.substring(0, 3)
const zip5Digit = zipCode.substring(0, 5)
if (
crossStateZips[code] &&
crossStateZips[code].includes(zip5Digit)
) {
return true
}
return zipcodes[code].includes(zip3Digit)
}