15

は、彼らはあなたを伝えるものだグローバル、アクトローカル

が、しかし私の開発者としての私のすべての時間の間に、私は常にグーグル、マイクロソフト、オラクルなどの大企業を見てきましたので、中に検証を行う考えますローカライズされた方法:私はどこの国かを知っているので、自分の電話番号、郵便番号、銀行口座番号などの詳細を自分の国の適切な検証方法で検証しようとします。昨日私はGoogleチェックアウトに登録し、彼らは私の国で郵便番号のフォーマットのいくつかの例を教えてくれました!国際化検証

私の質問は、どのようにこれを行うのですか?私は彼らに何千人もの従業員がいることを知っていますが、私は彼らがすべて井戸を再開発しなければならないと信じるのは難しいと感じています。米国には無数のバリデーション手法がありますが、それ以外の世界はどうですか?私はまだのような国の様々な共通点について検証を実行するために(離れて非常にincomplete and outdated PEAR attemptから)単一のオープンソースまともなライブラリ見ていませんでした:

  • 市民IDを
  • 納税ID
  • SSN(社会保障番号)
  • BBAN(基本銀行口座番号)
  • ファックス、電話と携帯電話番号
  • 郵便/郵便番号
  • ナンバープレート
  • 紙幣のシリアル番号
  • のように...

があります私が気付いていない隠れたリソースはどれですか?

+0

私はSOがそのようなプロジェクトを開始するのに適切な場所だとは思わない。 SOを使用すると、特定の質問に回答することができます(「フランスのナンバープレートの形式は何ですか?」など)。しかし、総合的な調査を行うことは有用ではありません。 –

+0

@マーティン:私はあなたに同意しますが、私は質問を削除する前にもう少しフィードバックを待つつもりです。私は、このような1つの質問と各国のためのいくつかの回答が何百もの質問よりも良いと思います。 XXXでYYYを検証する " –

+1

何千人もの従業員とローカル支店があ​​っても、Google Checkoutはアルゼンチンの私の町の正しい郵便番号を忘れていました。登録に間違ったコードを使用することを余儀なくされました。 –

答えて

1

単純な検証と完全な検証の間には大きな違いがあります。許可することができます/禁止の代替値(システムの特定)、外国値、歴史的価値など

  • CivilID/SSNなどの数字たち:例のカップルがあり、ここで、ロケール間で完全に検証を標準化することが多いことは不可能です状況によっては、同じ分野のアプリケーションで2つの異なる検証システムを使用でき、他のITシステムには他の検証システムがある場合があります。

  • 郵便番号の検証では、購読する必要がある有効な値のリストにアクセスする必要があります。多くの国で、このサブスクリプションは自動化されておらず、著作権ルールのために再配布するのは簡単ではありません。

  • 電話番号にも同様の問題があります。高価な番号、携帯電話番号を許可しますか?どのようにそれらを検出するのですか?

あなたは簡単な検証はほとんどの場合に可能であることを主張すること - が、簡単な検証のために、多くの場合、パターンマッチングを使用すると、各市場での現地部門が有効なパターンを定義できるようにする方が簡単です。

ソフトウェアサービス契約にも問題があります。ソフトウェアを購入して5年間使用したい場合、何か変更があった場合、検証ルールを変更することが不可欠です。私は私の国の電話番号システムの4つの変更を経験しました。これは "数字の桁数"と "最初の桁の数字"のような単純な検証に影響しました。

したがって、ロケール固有のパターンのデータベースを集中管理し、管理者が検証パターンを変更できるようにするのが最善の解決策です。

0

ウィキペディアは国によってlicense plate informationを収集します。同様にpostal codesの場合。

+0

ライセンスプレートや郵便番号だけでなく、UPUにはるかに優れたリソースがあります(http://www.upu。 int/post_code/en/postal_addressing_systems_member_countries.shtml)を郵便番号形式で使用します。ライセンスプレートに関するWikipediaのエントリーについては、非常に限られています(30カ国ほどの単一画像しか使用できません)。 –

1

PEARはそれほど悪くありません。例えば、ニュージーランドのためのバリデータは、郵便番号、IRD番号、電話番号、銀行口座番号 アルファでまだhttp://pear.php.net/manual/en/package.validate.validate-nz.php

そのような便利なもののすべての種類がありますが、かなりの数の国をカバーしています。再考する価値はありますか?

+0

ニュージーランド(または他の国)の検証方法が他の国と一貫していないため、主にDNI検証(市民ID)とポルトガル(その他多くの国)のみが任意の検証方法があります。これは、i18n環境のIMOではかなり役に立たない。 –

+1

あなたはこれを見ましたか? http://www.thomasweidner.com/flatpress/2009/09/19/zend_validate_postcode/ – Steve

+0

@Steve:これは非常に面白いですが、コードをどうやって見ることができますか? –

0

さて、私は何も特別な...それが取るすべてはreasearchのための1つのその国からプログラマと数日はバリデーションを書く&だと思いません.. + http://www.geonames.org/ からおそらく、ウィキペディア

+0

それはまさにポイントですが、私はポルトガル出身ですので、私の国にはかなり良い検証方法を書くことができますが、スペインについてのことは分かりません。ウィキペディアはいいです、私はそこで研究している素晴らしい仕事をしましたが、欠けているものがたくさんあります。 –

+0

ええ..しかし、あなたはいつもオンラインでいくつかのランダムな人に聞くことができます..右のフォーラム、stackoverflow ..など..P – Aviatrix

+0

もう一度、それを慎重に読んだら、この質問のポイントです... –

0

における情報のトンがあります彼らも素敵なAPIを持っています