需要javascript检查夏威夷阿拉斯加等的邮政编码

Need javascript checking zipcode for hawaii alaska, etc

本文关键字:邮政编码 阿拉斯加 夏威夷 javascript 检查 需要      更新时间:2023-09-26

有没有一种简单的方法可以根据邮政编码做某事(在javascript中)?更准确地说,用户将输入邮政编码,如果该邮政编码在美国大陆之外(如夏威夷、阿拉斯加、波多黎各等),那么它会做一些事情,比如隐藏免费送货选项。我知道这可以通过州字段轻松完成,但是邮政编码字段呢?

美国大陆(当然不包括阿拉斯加、夏威夷和美国领土)的所有邮政编码集可以定义如下:

邮政编码大于00999但小于96200

邮政编码等于或大于97000但小于99500

function isInContinentalUSA(zipcode)
{
    if((zipcode>'00999' && zipcode <'96200') || (zipcode>='97000' && zipcode <'99500')) {
      return true;
    } else {
      return false;
    }
}

更新:

美国边远领土遵循这些规则,所以我更新了上面的代码来管理波多黎各

US Outlying territories
AP: 962** - 966**
PW/FM/MH/MP/GU: 969**
AS: 96799
PR: 006-009

从阿多瓦挪用:http://addoa.com/blog/how-restrict-free-shipping-magento

USPS 提供了一个免费的 API,用于从邮政编码获取位置信息。见 https://www.usps.com/business/web-tools-apis/address-information.htm

您需要在客户端上列出一些列表来判断是否允许邮政编码。

或者,您需要ping服务器以检查邮政编码是否符合您给定的参数。

http://www.unitedstateszipcodes.org/hi/显示夏威夷邮政编码以 967 和 968 开头。http://www.unitedstateszipcodes.org/ak/显示阿拉斯加邮政编码以 995、996、997、998 和 999 开头。

所以,你想要这样的东西:

// var zipCodeStr
var notContinental = zipCodeStr.match(/^(967|968|995|996|997|998|999)/);

编辑

megawc提出了一个好的观点,即如果我想最高效,我应该使用test,而不是match。 所以我会推荐这段代码:

var notContinental = /^(967|968|995|996|997|998|999)/.test(zipCodeStr);
另外,我

注意到我以前的正则表达式缺少 998 和 999,所以我添加了它们。