【发布时间】:2012-06-24 08:49:26
【问题描述】:
我编写了一个 JavaScript 来使用正则表达式验证加拿大邮政编码。
但是,它似乎不起作用:
JavaScript
如果语句:
if (myform.zip.value == "" || myform.zip.value == null || myform.zip.value == "Postal Code" || myform.zip.value.length < 12 ) {
alert("Please fill in field Postal Code. You should only enter 7 characters");
myform.zip.focus();
return false;
}
功能:
function okNumber(myform) {
var regex = /^[ABCEGHJKLMNPRSTVXY]{1}\d{1}[A-Z]{1} *\d{1}[A-Z]{1}\d{1}$/;
if (regex.test(myform.zip.value) == false) {
alert("Input Valid Postal Code");
myform.zip.focus();
return false;
}
return true;
}
问题
虽然代码正在执行,但它根本不起作用。 当我运行它时,我得到:
请填写邮政编码字段。您只能输入 7 个字符
一个有效的邮政编码示例是T2X 1V4。
【问题讨论】:
-
{1}业务毫无意义。无论如何,[]字符类已经是隐式的{1}。与\d和任何其他匹配单个字符的东西相同。除此之外,这怎么行不通?您是否检查过输入没有前导/尾随空格? -
有效加拿大邮政编码的规则是什么?此正则表达式在哪些测试输入上失败?
-
我没有看到 okNumber 在第一个代码块的任何地方被调用...这段代码正在执行吗?
标签: javascript regex validation postal-code