2016-10-19 17 views
-2

これはどれくらい簡単かわかりませんが、皆さんのお手伝いができる人もいます。JavaScriptで定義済みの文字列との文字列の妥当性確認(郵便番号)

私は、異なる国の郵便番号に対して許容されるフォーマットを含むファイルを持っています。以下

例は、それがそのように記載されているようだ、米国は次のとおりです。

COUNTRY CODE |  FORMAT | # OF CHARS TO VALIDATE 
    US   | 99999-9999 | 5 | 
    US   | 999999999 | 5 | 
    US   | 99999  | 5 | 

(注:私はそれがより多くの読み取りが可能にするために、ヘッダーと余分なスペースを追加しました)。

それは下記のように英数字郵便番号を使用しています英国などの国々のために、より複雑な取得します。だから、基本的に私は何をする必要があるか

COUNTRY CODE |  FORMAT | # OF CHARS TO VALIDATE 
    GB   |  A9 9AA | 4 | 
    GB   |  AA9A9AA | 5 | 
    GB   |  AA9A 9AA | 6 | 
    GB   |  AA99AA | 4 | 
    GB   |  AA999AA | 5 | 
    GB   |  AA99 9AA | 6 | 
    GB   |  AA9 9AA | 5 | 
    GB   |  A9A9AA | 4 | 
    GB   |  A9A 9AA | 5 | 
    GB   |  A99AA  | 3 | 
    GB   |  A999AA | 4 | 
    GB   |  A99 9AA | 5 | 

は、ユーザから入力された郵便番号を取るし、その国の私の受け入れられているフォーマットに対してこれを検証してください。

私は正直なところ、これをやってみる気がなく、JavaScriptでも可能かどうか疑問に思っていました。

どのような提案、考えですか?

ありがとうございます。

+0

私は、すべての利用可能なフォーマットを配列に入れ、その方法を検証する必要があると考えています。 JSが正規表現を使用せずにそのように検証できるかどうかは分かりません。 :( – dEf

答えて

1

正規表現を使用する必要がありますが、これが最も効率的な方法です。使用可能なすべての書式を配列に入れ、コメントに示唆したとおりにチェックすると、長さがチェックされ、文字パターンはチェックされないため、問題が発生します。

正規表現を使わずにすべての郵便番号のリストを入れてJSのものと照合することはできますが、それはそれよりも悪いです。郵便番号のための非常に悪い考え、いくつかの項目をチェックするために使用するようにしてください。

Regexはこのタスクのあなたの友人です。

関連する問題