PHP 正規表現を使用して銀行カードの形式を確認する方法

王林
リリース: 2023-06-24 16:30:01
オリジナル
2031 人が閲覧しました

電子決済の普及が続くにつれ、銀行カードは人々の生活に欠かせない支払いツールの 1 つになりました。ただし、キャッシュカード取引を行う場合は、キャッシュカード番号の形式が正しいかどうかに注意する必要があります。 PHP の正規表現を使用すると、銀行カード番号の形式検証を簡単に実行できます。この記事では、PHP 正規表現を使用して銀行カードの形式を確認する方法を紹介します。

1. 銀行カード番号の構造を理解する

銀行カードの形式を確認する前に、銀行カード番号の構造を理解する必要があります。銀行カード番号は通常 16 桁で構成され、最初の 6 桁は銀行カードの発行銀行識別番号 (BIN) を表し、その後に発行銀行によって割り当てられたカード番号の 6 ~ 9 桁の省略形が続き、最後の 6 桁は銀行カードの発行銀行識別番号 (BIN) を表します。桁は検証ビットです。銀行カードの種類が異なれば、カード番号の長さも異なる場合がありますが、一般的なルールは同じです。したがって、キャッシュ カードの形式を確認するときは、キャッシュ カードの構造を参照する必要があります。

2. PHP 正規表現を使用して銀行カードの形式を確認する

PHP では、preg_match 関数を使用して正規表現のマッチングを実行できます。具体的な使用方法は次のとおりです。

preg_match($pattern, $subject);
ログイン後にコピー

このうち、$pattern は正規表現パターンを表し、$subject は照合する必要がある文字列を表します。

銀行カードの形式を確認する場合、次の正規表現を使用できます:

$pattern = '/d{16}/';
ログイン後にコピー

この正規表現パターンは、一致する文字列に出現する 16 個の数字のシーケンスを表します。ここで、 は一致する Word の境界を表します。 、d は数字の一致を意味し、{16} は 16 個の連続する数字の一致を意味します。

この正規表現パターンは、次のように銀行カード番号を検証する関数に適用できます。

function validate_bank_card_number($card_number) {
    $pattern = '/d{16}/';
    if (preg_match($pattern, $card_number)) {
        return true;
    } else {
        return false;
    }
}
ログイン後にコピー

上記の関数 validate_bank_card_number は、銀行カード番号をパラメータとして受け取り、preg_match メソッドを呼び出します。正規表現と一致し、検証結果を返す関数です。検証に合格すると true を返し、そうでない場合は false を返します。

3. 銀行カードの形式を検証するためのその他の手法

正規表現を使用して銀行カードの形式を検証することに加えて、検証に次の手法を使用することもできます:

  1. Luhn アルゴリズム

Luhn アルゴリズムは、モジュロ 10 アルゴリズムとも呼ばれ、単純な検証アルゴリズムです。銀行カード番号の場合、各数値を右から左に 2、1、2、1、2、1... で乗算し、結果の各数値の 1 桁を加算します。最後に、10 を法としたすべての 1 桁の合計を計算します。結果が 0 の場合、銀行カード番号が正当であることを意味します。

  1. チェック ディジットの計算

銀行カード番号の最後の桁はチェック ディジットであり、チェック ルールでは通常パリティ チェックが使用されます。具体的な方法は、キャッシュカード番号を1桁目から逆順に並べ、偶数桁を2倍し、その結果の十の位と一の位を足し、奇数の桁をすべて足します。最後に、計算結果の一桁と10の差がチェックデジットの値となります。計算されたチェック ディジットが銀行カード番号のチェック ディジットと同じである場合は、その銀行カード番号が正当であることを意味します。

要約すると、正規表現を使用して銀行カードの形式を確認するのは、簡単で迅速な方法です。しかし、実際の開発では、銀行カード取引の安全性と正確性を確保するために、銀行カードの種類に応じて異なる検証方法を使用することも考慮する必要があります。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート