Amalan ungkapan biasa PHP: memadankan kod ISBN

王林
Lepaskan: 2023-06-23 08:42:01
asal
1167 orang telah melayarinya

Kod ISBN ialah kod pengenalan unik untuk buku dan digunakan untuk mengenal pasti Nombor Buku Standard Antarabangsa. Kod ISBN biasanya terdiri daripada 13 digit, yang mana digit terakhir ialah kod semakan yang dikira berdasarkan 12 digit sebelumnya. Dalam PHP, kita boleh menggunakan ungkapan biasa untuk memadankan kod ISBN untuk memastikan ketepatannya.

Format kod ISBN adalah seperti berikut:

ISBN13: 978-7-111-40543-9

Antaranya, tiga digit pertama ialah negara EAN kod, dan keempat hingga keenam Digit ialah kod penerbit, digit ketujuh hingga kedua belas ialah nombor buku, dan digit terakhir ialah kod semakan. Untuk kaedah pengiraan kod semakan, sila rujuk pautan ini: https://zh.wikipedia.org/wiki/International_Standard_Book_Number#EAN/UCC-%E5%9C%B0%E7%90%86%E7%A0% 81%E5% 92%8C%E6%A0%A1%E9%AA%8C%E7%A0%81.

Kita boleh menggunakan ungkapan biasa untuk memadankan kod ISBN13, seperti berikut:

$pattern = '/^978-[d]{1,5}-[d]{1,7}-[d]{1,6}-[dX]$/';
Salin selepas log masuk

Antaranya, "^" dan "$" mewakili permulaan dan penghujung rentetan "[d]" mewakili sebarang nombor A, "{1,5}" bermaksud nombor itu diulang 1 hingga 5 kali; "[dX]" bermaksud sebarang nombor atau huruf X.

Mari kita lihat pelaksanaan kod PHP yang lengkap:

<?php
function checkISBN($isbn) {
    $pattern = '/^978-[d]{1,5}-[d]{1,7}-[d]{1,6}-[dX]$/';
    if (preg_match($pattern, $isbn)) {
        $digits = str_replace('-', '', substr($isbn, 0, -1));
        $length = strlen($digits);
        $sum = 0;
        for ($i = 0; $i < $length; $i++) {
            $sum += intval($digits[$i]) * (($i % 2 == 0) ? 1 : 3);
        }
        $checkDigit = 10 - ($sum % 10);
        if ($checkDigit == 10) {
            $checkDigit = 'X';
        }
        return $checkDigit == substr($isbn, -1);
    } else {
        return false;
    }
}

$isbn = '978-7-111-40543-9';
if (checkISBN($isbn)) {
    echo $isbn . ' is a valid ISBN!';
} else {
    echo $isbn . ' is not a valid ISBN!';
}

?>
Salin selepas log masuk

Dalam kod ini, kami mentakrifkan fungsi yang dipanggil checkISBN, yang menerima kod ISBN sebagai parameter. Secara dalaman, fungsi pertama kali menggunakan ungkapan biasa untuk melaksanakan pengesahan format pada kod ISBN, kemudian mengira kod semakan berdasarkan 12 digit pertama, dan akhirnya membandingkannya dengan kod semakan kod ISBN asal untuk menentukan sama ada ia sah.

Kita boleh menyimpan kod di atas sebagai fail PHP dan kemudian melaksanakannya dalam baris arahan Hasil output ialah:

978-7-111-40543-9 is a valid ISBN!
Salin selepas log masuk

Jika nilai $isbn ditukar kepada kod ISBN yang tidak sah. , seperti '978 -7-111-40543-0', hasil output ialah:

978-7-111-40543-0 is not a valid ISBN!
Salin selepas log masuk

Ringkasan:

Ekspresi biasa ialah alat yang sangat berkuasa dan fleksibel dengan kebolehgunaan yang luas. Dalam PHP, kami boleh menggunakan ungkapan biasa untuk melaksanakan operasi seperti padanan rentetan dan pengesahan format Pengesahan kod ISBN juga sangat mudah. Pembangun boleh menggunakan ungkapan biasa secara fleksibel mengikut keperluan sebenar mereka untuk meningkatkan kecekapan dan kebolehselenggaraan kod.

Atas ialah kandungan terperinci Amalan ungkapan biasa PHP: memadankan kod ISBN. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan