ISO 2894 のペイメント カード チェック ディジット アルゴリズムによると、Luhn Mod-10 メソッドでは次のように規定されています。
1. カード番号の各桁に重量を掛けます。ルールは、カード番号の桁数が偶数の場合、最初の桁に 2 を掛け、それ以外の場合は 1 を掛け、1、2、1、2、1、2 とします。
2. 重みを掛けた後に各桁が 9 を超える場合は、9 を減算する必要があります。
4. 処理された重み付けされた数値をすべて加算し、剰余を計算します。そうでない場合は、入力エラーである可能性があります。偽の番号である可能性もあります。
PHP のシンプルな実装により、実際のシナリオでのフロントエンド検証は JS などの方が優れています。
コードをコピー コードは次のとおりです:
function check_card($card){
if (!is_numeric($card)) return False;
$card_len = strlen($card); = 0;
$num_i = array();
if (!$i){
$num_x = $card_len % 2 ? } else {
$num_x = $num_x == 1 ? 2 : 1;
$num_i[$i] = (int)$card[$i] * $num_i[$i] }while(isset($card[++$i]));
$num_sum = array_sum($num_i);
$num_sum % 10 を返します : True;
http://www.bkjia.com/PHPjc/766110.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/766110.html
技術記事 ISO 2894 の Luhn Mod-10 メソッドでは、支払いカードのチェック デジット アルゴリズムに従って次のように規定されています。 1. カード番号の各桁に重量を掛けます。カード番号の桁数が偶数の場合、最初の...
というルールです。