Think Global,Act Local
这就是他们告诉你的,但是在我开发的所有时间里,我总是看到谷歌,微软,甲骨文等大公司以局部方式进行验证:他们知道我来自哪个国家,所以他们会尝试使用我所在国家/地区的正确验证方法验证我的电话号码,邮政编码和其他详细信息,例如银行帐号。昨天我报名参加谷歌结账,他们甚至向我展示了我国的邮政编码格式的一些例子!
所以我的问题是,他们是如何做到的?我知道他们有成千上万的员工,但我发现很难相信他们都必须彻底改造井。美国有无数的验证方法,但世界其他地方呢?我还没有看到一个开源的体面库(除了非常incomplete and outdated PEAR attempt之外)对各个国家的各个常见方面进行验证,例如:
是否有任何我不知道的隐藏资源?
答案 0 :(得分:1)
PEAR一个也不错。例如,新西兰的验证器有各种有用的东西,如邮政编码,税号,电话号码,银行帐号 http://pear.php.net/manual/en/package.validate.validate-nz.php
它仍处于Alpha状态,但覆盖了不少国家。可能值得重新考虑?
答案 1 :(得分:1)
简单验证和完整验证之间存在巨大差异。通常不可能跨区域标准化验证,这里有几个例子:
CivilID / SSN等号码可以允许/禁止替换值(系统特定),外来值,历史值等。我们在同一领域的一个应用程序中有2个不同的验证系统,具体取决于上下文,和其他IT系统可能有其他验证系统。
邮政编码验证可能需要访问有效值列表,这是您需要订阅的内容。在许多国家/地区,此订阅不是自动化的,并且由于版权规则,重新分发并非易事。
电话号码也存在类似问题。你允许昂贵的号码,手机号码吗?你是如何发现它们的?
您可能认为在大多数情况下可以进行简单的验证 - 但是对于简单的验证,通常更容易使用模式匹配并让每个市场中的本地部门定义有效模式。
软件服务合同也存在问题。如果您购买软件并希望使用它5年,那么如果有变化,您可以更改验证规则。我在我的国家经历了4次电话号码系统的更改,这些更改影响了简单验证,例如“数字位数”和“第一个数字可以是什么”。
因此,最佳解决方案是拥有一个特定于语言环境的模式的集中式数据库,并允许管理员修改验证模式。
答案 2 :(得分:0)
维基百科按国家/地区收集license plate information。同样适用于postal codes。
答案 3 :(得分:0)
嗯,我认为所需要的只是来自该国的一名程序员,以及几天的研究和安排。写下验证..没有什么特别的.. +维基百科中有大量的信息
答案 4 :(得分:0)
也许来自http://www.geonames.org/ 他们也有一个很棒的api