>  기사  >  백엔드 개발  >  입력 문자열이 올바른 ISBN 인코딩 형식인지 확인하는 PHP 정규 표현식

입력 문자열이 올바른 ISBN 인코딩 형식인지 확인하는 PHP 정규 표현식

WBOY
WBOY원래의
2023-06-24 21:18:321350검색

ISBN(국제 표준 도서 번호)은 도서를 식별하는 데 사용되는 연속 번호입니다. 이는 10자리 또는 13자리 숫자로 구성되며 정확성을 보장하기 위해 특정 계산을 통해 확인됩니다. 이 기사에서는 PHP 정규식을 사용하여 입력 문자열이 올바른 ISBN 인코딩 형식인지 확인하는 방법을 소개합니다.

ISBN 인코딩 형식

ISBN 인코딩은 10자리 또는 13자리로 구성됩니다. 처음 9자리는 책의 식별 코드이고, 10번째 자리는 검사 코드입니다. 13자리 ISBN 코드의 경우 처음 세 자리는 국가 또는 지역 코드이고, 그 다음에는 출판사 식별 코드, 도서 식별 코드, 마지막으로 검사 코드가 옵니다. 10자리 ISBN 코드의 경우 처음 9자리도 도서식별코드이지만, 국가나 지역코드와 출판사식별코드는 없고 마지막 자리는 여전히 체크코드이다.

검증 규칙

검증 규칙은 다음과 같습니다.

10자리 ISBN 코딩의 경우: 확인 코드는 마지막 자리이며, 계산 규칙은 다음과 같습니다: 처음 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));
}

이 두 함수는 각각 ISBN 코드를 입력으로 받아들이고 코드가 적법한 ISBN 코드인지 여부를 나타내는 부울 값을 반환합니다. 합법적인 인코딩이면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

이 함수는 정규식을 사용하여 입력이 ISBN 인코딩 형식을 준수하는지 확인합니다. 그런 다음 검증 규칙을 사용하여 체크 코드를 계산하고 이를 입력 인코딩의 체크 코드와 비교하여 인코딩이 합법적인지 확인합니다.

결론

이 문서에서는 PHP 정규 표현식을 사용하여 입력 문자열이 올바른 ISBN 인코딩 형식인지 확인하는 방법을 설명합니다. ISBN 인코딩의 검증 규칙은 상대적으로 복잡하지만 정규식의 강력한 기능을 사용하면 이 검증을 쉽게 구현할 수 있습니다. 개발자는 이러한 기능을 사용하여 사용자가 입력한 ISBN 코드가 올바른지 확인할 수 있습니다.

위 내용은 입력 문자열이 올바른 ISBN 인코딩 형식인지 확인하는 PHP 정규 표현식의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.