【问题标题】:Is there a library for normalizing postal codes?是否有用于规范邮政编码的库?
【发布时间】:2014-08-16 16:58:35
【问题描述】:

我的应用程序的用户被要求提供他们的国家和邮政编码。我想使用邮政编码作为数据存储中的键。因为邮政编码是由用户输入的,所以它们可以以不同的形式输入。例如,加拿大用户可能输入了:

  • A1A 1A1
  • a1a 1a1
  • A1A1A1
  • a1A 1A1
  • 等等……

现在我可以为加拿大邮政编码创建一个规范化函数,该函数选择一种规范形式(例如,全大写不带空格)并将邮政编码转换为规范形式,然后将其保存为 DB 键。

但是,这仅涵盖加拿大。我不想重新发明轮子。是否有一个库或 API 可以标准化(并可能验证)所有(或许多)国家/地区的邮政编码?

谢谢!

【问题讨论】:

  • 为什么不让它变得更容易呢?与其处理所有输入的品种代码,不如要求用户仅以标准格式输入(实际上这是正常做法)并检查一种简单格式输入的内容。实现对所有国家/地区的标准代码表示的支持更容易,我相信您可以手动完成,而无需大而棘手的库。用户在被询问/解释时可以正确输入。
  • @RuslanGerasimov,好的,这是一个有效的观点,在这种情况下,是否有一个地方可以让我获得所有国家/地区的标准格式列表?
  • 也检查这个线程,他们假装用正则表达式和其他东西覆盖加拿大和其他世界的代码http://stackoverflow.com/questions/578406/what-is-the-ultimate-postal-code-and-zip-regex
  • ISO 3166-1ISO 3166-1 alpha-2 等。有一个组织称为万国邮政联盟http://www.upu.int
  • 我将在 Node 中为此构建一个库

标签: normalization postal-code


【解决方案1】:

使用您的语言中内置的正则表达式和字符串函数非常容易。

Geonames 的 CountryInfo 表包含所有具有邮政编码的国家/地区的邮政编码正则表达式和格式值:

http://download.geonames.org/export/dump/countryInfo.txt

不要忘记 H0H 0H0 是圣诞老人的有效邮政编码。

【讨论】:

    【解决方案2】:

    要记住邮政编码的重要一点是,并非所有国家/地区都有它们,并且随着地址的添加、更新或删除,邮政编码可能会被重新编码。

    考虑到这一点,如果您想确保捕获的数据准确无误,最好的解决方案通常是使用付费的第三方库或网络服务来验证这一点。有许多公司提供验证整个地址的服务,而不仅仅是邮政编码。这些服务的全球覆盖范围和费用会有所不同,具体取决于您的需求。

    我为company 工作,该address validation for most countries world wide 通过一致的接口提供address validation for most countries world wide,可以是您可以集成的Web 服务或API。

    您可以在这里尝试一些示例:http://www.qas.co.uk/knowledge-centre/product-information/address-postcode-finder.htm

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-06
      相关资源
      最近更新 更多