PHP 验证加拿大邮政编码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 验证加拿大邮政编码相关的知识,希望对你有一定的参考价值。

function fnValidatePostal($mValue, $sRegion = '')
{
  $mValue = strtolower($mValue));
  $sFirst = substr($mValue, 0, 1);
  $sRegion = strtolower($sRegion);

  $aRegion = array(
    'nl' => 'a',
    'ns' => 'b',
    'pe' => 'c',
    'nb' => 'e',
    'qc' => array('g', 'h', 'j'),
    'on' => array('k', 'l', 'm', 'n', 'p'),
    'mb' => 'r',
    'sk' => 's',
    'ab' => 't',
    'bc' => 'v',
    'nt' => 'x',
    'nu' => 'x',
    'yt' => 'y'
  );
	
  if (preg_match('/[abceghjlkmnprstvxy]/', $sFirst) && !preg_match('/[dfioqu]/', $mValue) && preg_match('/^\w\d\w[- ]?\d\w\d$/', $mValue))
  {
    if (!empty($sRegion) && array_key_exists($sRegion, $aRegion))
    {
      if (is_array($aRegion[$sRegion]) && in_array($sFirst, $aRegion[$sRegion]))
      {
        return true;
      }
      else if (is_string($aRegion[$sRegion]) && $sFirst == $aRegion[$sRegion])
      {
        return true;
      }
    }
    else if (empty($sRegion))
    {
      return true;
    }
  }

  return false;
}

以上是关于PHP 验证加拿大邮政编码的主要内容,如果未能解决你的问题,请参考以下文章

验证加拿大邮政编码

如何根据所选国家/地区在 MVC3 中为美国或加拿大邮政编码验证编写自定义验证器?

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

Java 加拿大邮政编码计划,

textField 最大长度和邮政编码验证

验证 iPhone 上现有的邮政编码的最快方法是啥?