簡體   English   中英

如何使用JavaScript在此表單上驗證郵政編碼?

[英]How do I validate a Postcode on this form using JavaScript?

我對JavaScript的了解還不是很豐富,現在我已經嘗試了一段時間,如果用戶單擊“提交”按鈕時以錯誤的格式輸入了郵政編碼,則此表單將顯示一條警報消息。 到目前為止,我已經完成了什么工作,我都將所有內容放置在一個可以驗證所有字段的函數中,我使用名稱來引用函數內部的字段。 (對不起,如果我沒有正確縮進)

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;
}

這是im使用的表單中特定字段的HTML

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

另外,您應該添加一個簡單的可訪問性增強功能,如下所示:

<div class="field_container">
    <label for="postcode">Post Code</label> <!-- the "for" attribute should match the "id" attribute of the input it corresponds to -->
    <input type="text" name="postcode" id="postcode" />
</div>

假設您的正則表達式對您要定位的國家/地區來說是正確的,我將嘗試執行以下操作:

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所說,沒有適用於每個國家/地區的郵政編碼的統一正則表達式。 您應該確保要阻止來自其他一些國家/地區的人提交表單。

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM