Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan ungkapan biasa dalam PHP untuk mengesahkan format nombor ISBN buku

Cara menggunakan ungkapan biasa dalam PHP untuk mengesahkan format nombor ISBN buku

王林
王林asal
2023-06-22 09:07:341604semak imbas

Ungkapan biasa ialah alat pemadanan teks yang berkuasa yang boleh mengesahkan dengan berkesan sama ada data input memenuhi keperluan format yang ditentukan. Dalam aplikasi seperti sistem pengurusan perpustakaan, ISBN (International Standard Book Number) ialah format data yang patut diberi perhatian, dan formatnya mempunyai peraturan tertentu. Dalam artikel ini, kami akan memperkenalkan cara menggunakan ungkapan biasa dalam PHP untuk mengesahkan format nombor ISBN buku bagi memastikan sistem boleh mengendalikan logik perniagaan berkaitan nombor ISBN dengan betul.

  1. Peraturan format nombor ISBN

Nombor ISBN ialah nombor standard yang digunakan untuk mengenal pasti buku secara unik, biasanya termasuk format ISBN-10 dan ISBN-13. Format ISBN-10 terdiri daripada 10 digit, di mana digit terakhir mungkin ialah format ISBN-13 terdiri daripada 13 digit. Dalam artikel ini, kami akan menumpukan pada format ISBN-13 dan mengesahkan bahawa ia dibentuk dengan baik menggunakan ungkapan biasa.

Peraturan format nombor ISBN-13 adalah seperti berikut:

(1) Tiga digit pertama menunjukkan negara atau perbezaan bahasa buku akan terdapat digit awalan yang berbeza untuk negara yang berbeza atau kawasan. Sebagai contoh, nombor awalan untuk China ialah 978 atau 979.

(2) 9 digit seterusnya ialah nombor pendaftaran buku, yang diberikan kepada setiap buku oleh penerbit.

(3) Digit terakhir ialah digit semakan (Digit Semak Cara pengiraan digit semakan adalah seperti berikut:

1) Jumlah wajaran 12 digit pertama mengikut nombor. berat, Berat digit bernombor genap ialah 3, dan berat digit bernombor ganjil ialah 1

2) Bahagikan hasilnya dengan 10 untuk mendapatkan baki, tolak baki daripada 10, dan bezanya ialah kod semak.

Contohnya, nombor ISBN-13 buku "Pembangunan PHP dan MySQL dari Permulaan hingga Sarjana" ialah 978-7-81037-609-2, dengan jumlah wajaran 12 digit pertama ialah 1× 9+3× 7+1×8+3×8+1×1+3×0+1×3+3×7+1×6+3×0+1×9+3×2=99, bakinya ialah 9, gunakan Tolak baki daripada 10 untuk mendapatkan 1, iaitu digit semak terakhir ialah 1.

  1. Gunakan ungkapan biasa dalam PHP untuk mengesahkan format nombor ISBN

Untuk mengesahkan sama ada format nombor ISBN adalah betul, kita boleh menggunakan fungsi ungkapan biasa preg_match( ) dalam PHP , sintaksnya adalah seperti berikut:

preg_match(string $pattern, string $subject, array &$matches = null, int $flags = 0, int $offset = 0): int|false

Di mana, $pattern ialah corak ungkapan biasa, $subject ialah rentetan yang akan dipadankan, $matches ialah tatasusunan hasil yang sepadan, $flags ialah bendera pilihan , dan $offset ialah lokasi perlawanan permulaan. Apabila perlawanan berjaya, fungsi mengembalikan 1 apabila perlawanan gagal, fungsi mengembalikan 0.

Berikut ialah contoh kod yang menggunakan ungkapan biasa PHP untuk mengesahkan format nombor ISBN-13:

function is_valid_isbn($isbn) {
    $pattern = '/^97[89]d{10}$/'; // 匹配 ISBN-13 号码格式的正则表达式
    if(preg_match($pattern, $isbn)) { // 使用 preg_match() 函数进行匹配
        $digits = str_split($isbn);
        $check_digit = 0; // 校验码的计算过程
        for($i=0; $i<12; $i+=2) {
            $check_digit += $digits[$i] + 3 * $digits[$i+1];
        }
        $check_digit = (10 - $check_digit % 10) % 10;
        return $digits[12] == $check_digit;
    }
    else {
        return false;
    }
}

// 验证 ISBN-13 号码格式
$isbn1 = '978-7-81037-609-1';
$isbn2 = '978-7-81037-609-2';
if(is_valid_isbn(str_replace('-', '', $isbn1))) {
    echo $isbn1.' 是一个有效的 ISBN-13 号码。';
}
else {
    echo $isbn1.' 不是一个有效的 ISBN-13 号码。';
}
if(is_valid_isbn(str_replace('-', '', $isbn2))) {
    echo $isbn2.' 是一个有效的 ISBN-13 号码。';
}
else {
    echo $isbn2.' 不是一个有效的 ISBN-13 号码。';
}

Dalam kod sampel di atas, kami mula-mula mentakrifkan fungsi yang dipanggil is_valid_isbn(), Its parameter ialah nombor ISBN untuk disahkan. Fungsi ini mula-mula menggunakan ungkapan biasa untuk mengesahkan sama ada format nombor ISBN-13 adalah betul Jika formatnya betul, kod semak dikira dan dibandingkan dengan digit terakhir untuk menentukan sama ada nombor ISBN itu sah. Antaranya, str_replace('-', '', $isbn) digunakan untuk mengalih keluar pemisah sempang dalam nombor ISBN untuk pengiraan.

Akhir sekali, kami boleh mengujinya pada beberapa nombor ISBN untuk mengesahkan keberkesanan fungsi tersebut. Fungsi mengembalikan benar apabila nombor ISBN yang dimasukkan adalah dalam format yang betul dan jumlah semak dikira dengan betul, jika tidak, ia mengembalikan palsu. Dengan cara ini, kami boleh mengesahkan dengan berkesan sama ada nombor ISBN yang dimasukkan mematuhi peraturan dan memastikan sistem boleh mengendalikan logik perniagaan berkaitan ISBN dengan betul.

  1. Kesimpulan

Artikel ini memperkenalkan cara menggunakan ungkapan biasa dalam PHP untuk mengesahkan sama ada format nombor ISBN-13 buku itu betul dan boleh menentukan dengan berkesan sama ada data input mematuhi peraturan. Dalam pembangunan sebenar, kita boleh menentukan corak ungkapan biasa yang berbeza mengikut keperluan sebenar untuk menyesuaikan diri dengan keperluan pengesahan format data yang berbeza. Ungkapan biasa ialah alat pemadanan teks yang sangat berkuasa, dan amat penting bagi pembangun untuk menguasai kemahiran menggunakan ungkapan biasa.

Atas ialah kandungan terperinci Cara menggunakan ungkapan biasa dalam PHP untuk mengesahkan format nombor ISBN buku. 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