ホームページ >バックエンド開発 >PHPチュートリアル >入力文字列が正しい ISBN エンコード形式であることを確認するための PHP 正規表現

入力文字列が正しい ISBN エンコード形式であることを確認するための PHP 正規表現

WBOY
WBOYオリジナル
2023-06-24 21:18:321429ブラウズ

国際標準書籍番号である

ISBN (国際標準書籍番号) は、書籍を識別するために使用される連続番号です。これは 10 桁または 13 桁で構成され、その正確性を保証するために特定の計算によって検証されます。この記事では、PHP 正規表現を使用して、入力文字列が正しい ISBN エンコード形式であることを確認する方法を紹介します。

ISBN エンコード形式

ISBN エンコードは 10 桁または 13 桁で構成され、最初の 9 桁が書籍識別コード、10 桁目がチェックコードです。 13 桁の ISBN コードの場合、最初の 3 桁は国または地域コード、次に出版社の識別コード、書籍の識別コード、最後にチェック コードが続きます。 10 桁の ISBN コードの場合、最初の 9 桁は書籍識別コードでもありますが、国または地域コードや出版社識別コードはなく、最後の 1 桁は依然としてチェック コードです。

検証ルール

検証ルールは次のとおりです:

10 桁の ISBN コードの場合: チェック コードは最後の 1 桁で、計算ルールは次のとおりです。 : 最初の 9 桁を加算します。 1 から 9 までの重み係数をそれぞれ乗算し、これらの 9 つの積を加算して合計を求めます。次に、この合計の余りを 11 にし、11 から余りを減算してチェック コードを取得します。余りが 10 の場合、チェック コードは大文字の X になります。

13 桁の ISBN エンコードの場合: チェック コードは最後の桁で、計算規則は次のとおりです。最初の 12 桁にそれぞれ 1 または 3 の重み係数を乗算し、これらの 13 の積を加算します。合計を取得します。次に、この合計の余りを 10 にし、10 から余りを減算してチェック コードを取得します。

PHP 正規表現

以下は、入力文字列が正しい ISBN エンコード形式であるかどうかを確認するために使用される PHP 正規表現のコードです。

10 桁の ISBN コードの場合:

function checkISBN10($isbn) {
    if (!preg_match('/^d{9}[d|X]$/i', $isbn)) {
        return false;
    }
    $checkbit = 0;
    for ($i = 0; $i < 9; $i++) {
        $checkbit += intval($isbn{$i}) * (10 - $i);
    }
    $checkbit = ($checkbit % 11 == 0) ? 0 : 11 - ($checkbit % 11);
    return ($isbn{9} == ($checkbit == 10 ? 'X' : strval($checkbit)));
}

13 桁の ISBN コードの場合:

function checkISBN13($isbn) {
    if (!preg_match('/^d{13}$/i', $isbn)) {
        return false;
    }
    $checkbit = 0;
    for ($i = 0; $i < 12; $i++) {
        $checkbit += intval($isbn{$i}) * (($i % 2 == 0) ? 1 : 3);
    }
    $checkbit = 10 - ($checkbit % 10);
    return ($isbn{12} == strval($checkbit));
}

これら 2 つの関数は、ISBN コードを入力として受け入れ、ブール値を返します。コードが法的な ISBN コードであるかどうか。正当なエンコーディングの場合は true を返し、そうでない場合は false を返します。

これらの関数は、正規表現を使用して、入力が ISBN エンコード形式に準拠しているかどうかを確認します。次に、検証ルールを使用してチェック コードを計算し、それを入力エンコーディングのチェック コードと比較して、エンコーディングが正当であるかどうかを判断します。

結論

この記事では、PHP 正規表現を使用して、入力文字列が正しい ISBN エンコード形式であるかどうかを確認する方法を紹介します。 ISBN エンコードの検証ルールは比較的複雑ですが、正規表現の強力な機能を利用すると、この検証を簡単に実装できます。開発者はこれらの関数を使用して、ユーザーが入力した ISBN コードをチェックし、その正確性を確認できます。

以上が入力文字列が正しい ISBN エンコード形式であることを確認するための PHP 正規表現の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。