0

私は現在、郵便番号を使用して DB から通り/都市の詳細を取得する必要があるプロジェクトに取り組んでいます。オランダの郵便番号は「1111 AA」形式を使用します。これを 1 つの入力フィールドに入力し、最初の 4 文字を数字に、最後の 2 文字をアルファベットにするように強制したいと考えています。

私はこれをかなりグーグルで調べてきましたが、どちらかを強制する方法を見つけましたが、それを単一の入力フィールドに結合する方法はなく、それらを自分で結合するほど狡猾ではないようです。

ありがとうございました。

4

4 に答える 4

1

これは多くのサイトで使用されており、特に電話番号に使用されています

http://digitalbush.com/projects/masked-input-plugin/

于 2012-10-04T17:18:42.120 に答える
0

これは最終的に、正規表現が適切な解決策であるという問題です。

これを試して:

var zip = "1111 AA"
var regex = new RegExp("^[0-9]{4}\\s?[A-Z]{2}$");
regex.test(zip);

これは小文字を許可せず、空白なしの郵便番号を許可することに注意してください (例: 1111AA)。それらを許可または禁止する方法を見つけるために、いくつかのグーグルを試してみてください。

于 2012-10-04T17:20:18.433 に答える
0

入力した特定のパターンを処理するには、フォーム入力を検証する JavaScript 関数で次のようなことを試してください。

var pattern = new RexExp( '[0-9]{4} [A-Z]{2}' );
if( inputFieldValue.search( pattern ) == -1 )
{
    // throw error condition.
}
else
{
    // The pattern matched. Continue on.
}
于 2012-10-04T17:22:22.650 に答える
0

そのために新しい html5pattern属性を使用できます。

<form>
   <input name="zipcode" type="text" pattern="\d{4}\s?[A-Z]{2}" length="7" />      
   <input type="submit" />
</form>​​​​​​​​​​​​​​​​​​​​​​​​

属性がサポートされていない場合は、JavaScript ソリューションにフォールバックし、次のように送信前に入力フィールドを正規表現でチェックします。

var pattern = /[0-9]{4}\s?[A-Z]{2}/;
string.match(pattern);

デモフィドルを見てください。

于 2012-10-04T17:23:58.963 に答える