1

私はJavaScriptの経験があまりなく、ユーザーが送信ボタンをクリックしたときに郵便番号が間違った形式で入力された場合に、このフォームにアラートメッセージを表示させるようにしばらく取り組んできました。これまでに達成したことは、すべてのフィールドを検証する1つの関数内にすべてを配置し、関数内からフィールドを参照するために名前を使用しています。(正しくインデントされていない場合は申し訳ありません)

var g=document.forms["myform"]["postcode"].value;
if (g==null || g=="")
{
    alert("Please enter your Post CODE");
    return false;
}
var regPostcode = /^([a-zA-Z]){1}([0-9][0-9]|[0-9]|[a-zA-Z][0-9]
[a-zA-Z]|[a-zA-Z][0-9][0-9]|[a-zA-Z][0-9]){1}([ ])([0-9][a-zA-z][a-zA-z]){1}$/;
if(regPostcode.test(postcode) == false)
{
    alert("That Post Code is incorrect");
    return false;
}

これは、フォーム内の特定のフィールドのHTMLです。

<div class=”field_container”&gt;<label>Post Code</label><input type=”text” name="postcode" id="postcode" /></div>
4

2 に答える 2

0

あなたの正規表現があなたが目指している国にとって正しいと仮定して、私はこのようなものを試してみます:

var g = document.forms["myform"]["postcode"].value;
var regPostcode = /^([a-zA-Z]){1}([0-9][0-9]|[0-9]|[a-zA-Z][0-9]
    [a-zA-Z]|[a-zA-Z][0-9][0-9]|[a-zA-Z][0-9]){1}([ ])([0-9][a-zA-z][a-zA-z]){1}$/;
if (!g)
{
    alert("Please enter your Post CODE");
    return false;
}
if (!g.match(regPostcode))
{
    alert("That Post Code is incorrect");
    return false;
}

@Shipluが言ったように、すべての国の郵便番号で機能する統一正規表現はありません。他の国に住んでいる人からのフォームの送信をブロックする必要があります。

お役に立てれば。

于 2012-03-03T21:56:58.340 に答える