Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mengesahkan kesahihan nombor kad bank menggunakan ungkapan biasa dalam PHP

Bagaimana untuk mengesahkan kesahihan nombor kad bank menggunakan ungkapan biasa dalam PHP

王林
王林asal
2023-06-24 10:33:241259semak imbas

Dengan penggunaan kad bank yang kerap dalam kehidupan seharian orang ramai, kesahihan nombor kad bank telah menjadi isu penting. Untuk memastikan keselamatan pembayaran, kesahihan nombor kad bank mesti disahkan. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa dalam PHP untuk mengesahkan kesahihan nombor kad bank.

1. Struktur nombor kad bank

Sebelum memperkenalkan secara rasmi cara menggunakan ungkapan biasa untuk mengesahkan kesahihan nombor kad bank, kita perlu terlebih dahulu memahami struktur nombor kad bank. Secara umumnya, nombor kad bank terdiri daripada bahagian berikut:

1 Kod bank yang mengeluarkan kad: Kod bank yang mengeluarkan kad biasanya terdiri daripada 6 digit dan digunakan untuk mengenal pasti institusi yang mengeluarkan kad bank.

2. ID Akaun: ID akaun biasanya terdiri daripada 1 hingga 19 digit dan digunakan untuk mengenal pasti keunikan akaun kad bank.

3. Kod pengesahan: Kod pengesahan biasanya terdiri daripada 1 digit dan digunakan untuk mengesahkan kesahihan nombor kad bank.

2. Gunakan ungkapan biasa untuk mengesahkan kesahihan nombor kad bank

Selepas memahami struktur nombor kad bank, kami boleh menggunakan ungkapan biasa untuk mengesahkan kesahihan nombor kad bank. . Kaedah pengesahan khusus adalah seperti berikut:

1. Gunakan ungkapan biasa untuk memadankan nombor kad bank.

Nombor kad bank biasanya terdiri daripada 16 hingga 19 digit, jadi kita boleh menggunakan ungkapan biasa berikut untuk dipadankan:

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

Maksud ungkapan biasa ini ialah: bermula dengan nombor 1 hingga 9, diikuti dengan 15 hingga 18 digit, keseluruhan rentetan perlu sepadan dengan keseluruhan ungkapan.

2. Kira sama ada nombor kad bank itu sah melalui digit cek.

Digit semakan nombor kad bank boleh dikira dengan algoritma Luhn. Kaedah pengiraan khusus adalah seperti berikut:

(1) Darab setiap digit dengan dua dari kanan ke kiri.

(2) Tambahkan satu dan sepuluh digit nombor yang hasil darabnya lebih daripada 9 untuk mendapatkan nombor baharu.

(3) Tambahkan semua nombor untuk mendapatkan jumlah.

(4) Jika jumlah boleh dibahagi dengan 10, nombor kad bank adalah sah, jika tidak, ia tidak sah.

Berikut ialah contoh penggunaan kod PHP untuk mengesahkan nombor kad bank:

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;

}

Yang di atas kod akan Mengembalikan nilai Boolean, benar jika nombor kad bank adalah sah, sebaliknya palsu.

3. Ringkasan

Di atas ialah pengenalan terperinci tentang cara menggunakan ungkapan biasa untuk mengesahkan kesahihan nombor kad bank dalam PHP. Pengesahan kesahihan nombor kad bank adalah salah satu langkah penting untuk keselamatan pembayaran, jadi isu ini sangat penting. Menggunakan ungkapan biasa untuk mengesahkan kesahihan nombor kad bank ialah kaedah yang sangat mudah, pantas dan boleh dipercayai, dan harus digunakan secara meluas semasa membangunkan tapak web atau aplikasi yang berkaitan dengan pembayaran.

Atas ialah kandungan terperinci Bagaimana untuk mengesahkan kesahihan nombor kad bank menggunakan ungkapan biasa dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn