ホームページ >バックエンド開発 >PHPチュートリアル >PHP で正規表現を使用して銀行カード番号の有効性を確認する方法

PHP で正規表現を使用して銀行カード番号の有効性を確認する方法

王林
王林オリジナル
2023-06-24 10:33:241343ブラウズ

人々の日常生活で銀行カードが頻繁に使用されるようになるにつれ、銀行カード番号の有効性が重要な問題になっています。支払いの安全性を確保するには、銀行カード番号の有効性を確認する必要があります。この記事では、PHP で正規表現を使用して銀行カード番号の有効性を検証する方法を紹介します。

1. 銀行カード番号の構造

正規表現を使用して銀行カード番号の有効性を検証する方法を正式に紹介する前に、まず銀行カード番号の構造を理解する必要があります。一般的に、銀行カード番号は次の部分で構成されます:

1. カード発行銀行コード: カード発行銀行コードは通常 6 桁で構成され、銀行カードを発行した機関を識別するために使用されます。

2. アカウント ID: アカウント ID は通常 1 ~ 19 桁で構成され、銀行カード アカウントの一意性を識別するために使用されます。

3. 検証コード: 検証コードは通常 1 桁で構成され、銀行カード番号の有効性を検証するために使用されます。

2. 正規表現を使用して銀行カード番号の有効性を検証する

銀行カード番号の構造を理解した後、正規表現を使用して銀行カード番号の有効性を検証できます。具体的な検証方法は次のとおりです:

1. 正規表現を使用して銀行カード番号を照合します。

銀行カード番号は通常 16 ~ 19 桁で構成されているため、次の正規表現を使用して照合できます:

/^[1-9]d{15,18}$/

この正規表現の意味は、1 ~ 9 の数字で始まり、その後に 15 ~ 18 桁が続き、文字列全体が式全体と一致する必要があります。

2. チェック ディジットを通じて銀行カード番号が有効かどうかを計算します。

銀行カード番号のチェック デジットは、Luhn アルゴリズムによって計算できます。具体的な計算方法は次のとおりです。

(1) 各桁を右から左に 2 倍します。

(2) 積が 9 より大きい数値の一と十の位を加算して、新しい数値を取得します。

(3) すべての数値を加算して合計を求めます。

(4) 合計が 10 で割り切れる場合、その銀行カード番号は有効ですが、それ以外の場合は無効です。

以下は、PHP コードを使用して銀行カード番号を確認する例です:

function validate_bank_card($bank_card_number) {

if(!preg_match('/^[1-9]d{15,18}$/',$bank_card_number)) {
    return false;
}
$arr_card_number = str_split(strrev($bank_card_number));
$last_number_is_odd = false;
$total = 0;
foreach ($arr_card_number as $key => $value) {
    $num = intval($value);
    if ($last_number_is_odd) {
        $num *= 2;
        $num %= 10;
        $total += $num;
        $last_number_is_odd = false;
    } else {
        $total += $num;
        $last_number_is_odd = true;
    }
}
return ($total % 10) == 0;

}

上記code will はブール値を返します。銀行カード番号が有効な場合は true、そうでない場合は false。

3. 概要

上記は、PHP で正規表現を使用して銀行カード番号の有効性を検証する方法の詳細な紹介です。銀行カード番号の有効性検証は、支払いの安全性を確保するための重要な対策の 1 つであるため、この問題は非常に重要です。正規表現を使用して銀行カード番号の有効性を確認することは、非常に簡単、高速、信頼性の高い方法であり、支払い関連の Web サイトやアプリケーションを開発するときに広く使用する必要があります。

以上がPHP で正規表現を使用して銀行カード番号の有効性を確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。