PHP 验证信用卡号码

Posted

tags:

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

function fnValidateCc($mValue, $sCard = '')
{
  if ($sCard == 'visa')
  {
    $sPattern = '/^4([0-9]{12}|[0-9]{15})$/';
  }
  else if ($sCard == 'amex')
  {
    $sPattern = '/^3[4|7][0-9]{13}$/';
  }
  else if ($sCard == 'mastercard')
  {
    $sPattern = '/^5[1-5][0-9]{14}$/';
  }
  else if ($sCard == 'discover')
  {
    $sPattern = '/^6011[0-9]{12}$/';
  }
  else if ($sCard == 'dinners')
  {
    $sPattern = '/^[30|36|38]{2}[0-9]{12}$/';
  }
  else if (empty($sCard))
  {
    $sPattern = '/^[0-9]{13,19}$/';
  }
  else
  {
    return false;
  }
		
  if (preg_match($sPattern, $mValue))
  {
    // Modulo 10 
    $iSum = 0;
    $iWeight = 2;
    $iLength = strlen($mValue);

    for ($i = $iLength - 2; $i >= 0; $i--) 
    {
      $iDigit = $iWeight * $mValue[$i];
      $iSum += floor($iDigit / 10) + $iDigit % 10;
      $iWeight = $iWeight % 2 + 1;
    }

    if ((10 - $iSum % 10) % 10 == $mValue[$iLength - 1]) 
    {
      return true;
    }
  }

  return false;
}

以上是关于PHP 验证信用卡号码的主要内容,如果未能解决你的问题,请参考以下文章

ruby 练习:阶级战,验证信用卡号码如果信用卡号码我们应该能够验证它是否有效基于

验证信用卡信息 - CVV 号码

js正则表单验证汇总,邮箱验证,日期验证,电话号码验证,url验证,信用卡验证,qq验证

42是有效的信用卡号码吗? jQuery 验证器认为它是

NumberValidators工商营业执照号码和统一社会信用代码验证

信用卡类型和验证