Ali*_*xel 15 php language-agnostic validation localization internationalization
Think Global,Act Local
这就是他们告诉你的,但是在我开发的所有时间里,我总是看到谷歌,微软,甲骨文等大公司以局部方式进行验证:他们知道我来自哪个国家,所以他们会尝试验证我的电话号码,邮政编码和其他详细信息,例如银行帐号以及我所在国家的正确验证方法.昨天我报名参加谷歌结账,他们甚至向我展示了我国的邮政编码格式的一些例子!
所以我的问题是,他们是如何做到的?我知道他们有成千上万的员工,但我发现很难相信他们都必须重新改造井.美国有无数的验证方法,但世界其他地方呢?我还没有看到一个开源的体面图书馆(除了非常不完整和过时的PEAR尝试之外)在各个国家的各个共同方面进行验证,例如:
有什么隐藏的资源我不知道吗?
简单验证和完整验证之间存在巨大差异。通常不可能跨区域设置完全标准化验证,以下是几个示例:
CivilID/SSN 等号码可以允许/禁止替代值(特定于系统)、外国值、历史值等。根据上下文,我们在同一领域的应用程序之一中有 2 个不同的验证系统,而其他 IT 系统可能有其他验证系统。
邮政编码验证可能需要访问有效值列表,您需要订阅该列表。在许多国家,这种订阅不是自动化的,而且由于版权规则,重新分发并不是一件容易的事。
电话号码也有类似的问题。你们允许昂贵的号码、手机号码吗?你如何检测它们?
您可能会争辩说,在大多数情况下,简单的验证是可能的 - 但对于简单的验证,使用模式匹配并让每个市场的本地部门定义有效模式通常更容易。
软件服务合同也存在问题。如果您购买软件并希望使用它 5 年,那么如果发生变化,您可以更改验证规则,这一点至关重要。我在我的国家经历了 4 次电话号码系统的变化,这些变化影响了简单的验证,例如“位数”和“第一位数字是什么”。
因此,最好的解决方案是拥有一个特定于区域设置的模式的集中数据库,并允许管理员修改验证模式。
归档时间: |
|
查看次数: |
1266 次 |
最近记录: |