验证加拿大邮政编码正则表达式

Ale*_*ock 11 javascript php regex mysql

我有一个用JavaScript编写的脚本,用于使用Regex验证加拿大邮政编码,但它似乎没有用.这是脚本:

如果声明:

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;
  }
Run Code Online (Sandbox Code Playgroud)

功能:

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;
}
Run Code Online (Sandbox Code Playgroud)

Bal*_*ngh 6

这适用于所有加拿大邮政编码..

^[ABCEGHJKLMNPRSTVXY]{1}\d{1}[A-Z]{1} *\d{1}[A-Z]{1}\d{1}$
Run Code Online (Sandbox Code Playgroud)


Li-*_*Yip 4

正则表达式方法可以验证加拿大邮政编码的格式,但不足以保证邮政编码确实存在

例如:A9A 0A0 看起来像有效的加拿大邮政编码,但正向分拣区域A9A 实际上并不存在

您确定不想对官方邮政编码列表进行某种查找吗?

  • 在这种情况下,类似“^[AZ]\d[AZ][]?\d[AZ]\d$”的内容[将起作用](http://regexr.com?31b0q)。如果此正则表达式在您的程序中不起作用,则可能存在逻辑错误(true 而不是 false?),错误地调用了正则表达式代码,或者根本没有调用它。 (3认同)