[英]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.