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