PHP正则表达式验证输入字符串是否为正确的ISBN编码格式

WBOY
发布: 2023-06-24 21:18:32
原创
1581人浏览过

isbn(international standard book number),即国际标准图书编号,是一个用来标识图书的连续数字。它由十位或十三位数字组成,并且经过一定的计算校验,以确保其正确性。在这篇文章中,我们将介绍如何使用php正则表达式来验证输入字符串是否为正确的isbn编码格式。

ISBN编码格式

ISBN编码由10位或13位数字组成,前9位为书籍的标识码,第10位为校验码。对于13位的ISBN编码,前3位是国家或地区代码,接着是出版社的标识码,然后是书籍的标识码,最后是校验码。对于10位的ISBN编码,前9位也是书籍的标识码,但没有国家或地区代码和出版社标识码,最后一位仍为校验码。

校验规则

校验规则如下:

立即学习PHP免费学习笔记(深入)”;

对于10位ISBN编码:校验码为最后一位数字,计算规则如下:将前9位数字分别乘以1~9的权重系数,然后将这9个乘积相加,得到一个总和。然后将这个总和对11取余数,并将余数与11进行减法运算,得到校验码。如果余数为10,则校验码为大写字母X。

对于13位ISBN编码:校验码为最后一位数字,计算规则如下:将前12位数字分别乘以1或3的权重系数,然后将这13个乘积相加,得到一个总和。然后将这个总和对10取余数,再用10减去这个余数,得到校验码。

PHP正则表达式

下面是PHP正则表达式的代码,用于验证输入字符串是否为正确的ISBN编码格式。

对于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编码,以确保其正确性。

以上就是PHP正则表达式验证输入字符串是否为正确的ISBN编码格式的详细内容,更多请关注php中文网其它相关文章!

豆包AI编程
豆包AI编程

智能代码生成与优化,高效提升开发速度与质量!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号