0

JS コード:

USA/BR/CA の 3 か国の郵便番号検証に次のコードを使用していました。

/*To Get ZipCodeRegex as per country */
function getZipRegEx(inputcountry) {
var returntext;
if (inputcountry == "USA") {
    returntext = /^\d{5}$/
}
else if (inputcountry == "CA") {
    returntext = /^[ABCEGHJKLMNPRSTVXYabceghjklmnprstvxy]{1}\d{1}[A-Za-z]{1} *\d{1}[A-Za-z]{1}\d{1}$/
}
else if (inputcountry == "BR") {
    returntext = /^([0-9]){5}([-])([0-9]){3}$/
}
return returntext;

};

これで、クライアントはコードを更新し、入力テキストボックスに MASK プラグインを使用しました。マスク パターンは data-mask 属性でレンダリングされます。以下は、郵便番号の入力コントロール用にレンダリングされた HTML です。

<input type="text" name="zip" id="zip" value="" class="required" data-mask="99999" />

問題領域 : 最新のコード ベースでは、10 か国以上をカバーしており、すべての国/州で郵便番号のパターンが異なります。

では、入力フィールドに付属するマスク値に基づいて正規表現パターンを生成することは可能ですか? このように、国固有のチェックを入れる必要はありません。

このシナリオをカバーする実装アプローチを提案してください。

前もって感謝します。

4

1 に答える 1

1

MASK プラグインは、入力された郵便番号のクライアント側検証を既に実行しています。それが目的です。Javascript を使用した独自のクライアント側検証でそれを複製しても意味がありません。

とにかく、クライアント側の検証はユーザーにとって便利です (フォームが送信される前にユーザーが修正できるように、エラーをすばやく報告します)。簡単に回避できるため、有効な入力が保証されることはありません。

適切な入力を確保したい場合は、サーバー側で検証する必要があります。

于 2013-02-28T14:24:42.127 に答える