ホームページ >バックエンド開発 >PHPチュートリアル >PHP で正規表現を使用して銀行カード番号の有効性を確認する方法
人々の日常生活で銀行カードが頻繁に使用されるようになるにつれ、銀行カード番号の有効性が重要な問題になっています。支払いの安全性を確保するには、銀行カード番号の有効性を確認する必要があります。この記事では、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 サイトの他の関連記事を参照してください。