如何使用JavaScript在此表单上验证邮政编码?

时间:2012-02-18 18:45:20

标签: javascript regex postal-code

我不是那种使用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;
}

以下是使用

的表单中特定字段的HTML
<div class=”field_container”><label>Post Code</label><input type=”text” name="postcode" id="postcode" /></div>

2 个答案:

答案 0 :(得分: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所说,没有统一的正则表达式适用于每个国家的邮政编码。您应该确保阻止来自其他国家/地区的人提交表单。

希望这有帮助。

答案 1 :(得分:0)

此外,您应该添加一个简单的辅助功能增强功能:

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