我有JavaScript代码来验证页面中的Zip代码字段,如下所示:
<script type="text/javascript">
var zip=$("#zip").val();
if (zip == '') {
errorMessage = REG_FIELD_EMPTY_ZIP;
$('#msg_zip').html(errorMessage).show();
}
else {
if ((zip.length) < 5)
{
errorMessage = REG_FIELD_LENGTH_ZIP;
$('#msg_zip').html(errorMessage).show();
}
else
{
if (!reg.test(zip)) {
errorMessage = REG_FIELD_ONLYDIGITS_ZIP;
$('#msg_zip').html(errorMessage).show();
}
else {
$('#msg_zip').html('').hide();
}
}
}
</script>
在这里,我想添加更多条件: 1 GT;此邮政编码字段还应支持加拿大邮政编码格式(A#A#A#),有或没有它应该接受的空格。如果该值不是加拿大邮政编码格式, 2 - ;它应该只接受5位数。 如何修改上面的脚本,以便我可以使我的邮政编码字段也接受加拿大邮政编码格式。 通过搜索我发现一些正则表达式接受加拿大邮政编码为/ ^ [ABCEGHJKLMNPRSTVXY] \ d [A-Z] * \ d [A-Z] \ d $ /;但是当我测试它时,它不接受小写字母 任何人都可以澄清如何更改我的脚本,以便它应接受加拿大邮政编码或只接受5位数。在此先感谢。
答案 0 :(得分:1)
加拿大邮政编码的正则表达式是正确的。如果您希望它接受小写字母,则必须使用不区分大小写的选项( i ):
(/^[ABCEGHJKLMNPRSTVXY]\d[A-Z] *\d[A-Z]\d$/i).test(zip)
5位数的正则表达式:
/^\d{5}$/
结合这两个:
(/^[ABCEGHJKLMNPRSTVXY]\d[A-Z] *\d[A-Z]\d$/i).test(zip) || (/^\d{5}$/).test(zip)