Javascript/PHP的校验补全位数IMEI代码

记录一下如何通过Javascript或PHP校验IMEI代码,以及14位IMEI补全15位的计算方法。用于干什么?说了你也不懂,懂的不说也懂。哈哈~~
Javascript校验:


function isIMEI(s) {
var etal = /^[0-9]{15}$/;
if (!etal.test(s))
return false;
sum = 0;
mul = 2;
l = 14;
for (i = 0; i < l; i++) { digit = s.substring(l - i - 1, l - i); tp = parseInt(digit, 10) * mul; if (tp >= 10)
sum += (tp % 10) + 1;
else
sum += tp;
if (mul == 1)
mul++;
else
mul--;
}
chk = ((10 - (sum % 10)) % 10);
if (chk != parseInt(s.substring(14, 15), 10))
return false;
return true;
}

PHP校验IMEI:

function checkIMEI($str)
{
if (!preg_match('/^[0-9]{15}$/is', $str)) {
return false;
}
$sum = 0;
$mul = 2;
$l = 14;
for ($i = 0; $i < $l; $i++) { $digit = substr($str, $l - $i - 1, 1); $tp = intval($digit, 10) * $mul; if ($tp >= 10) {
$sum += ($tp % 10) + 1;
} else {
$sum += $tp;
}
if ($mul == 1) {
$mul++;
} else {
$mul--;
}
}

$chk = ((10 – ($sum % 10)) % 10);
if ($chk != intval(substr($str, 14, 1), 10)) {
return false;
}
return true;
}

PHP 14位IMEI补全15位:

function makeCheckIMEI($str)
{
if (!preg_match('/^[0-9]{14}$/is', $str)) {
return false;
}

$sum = 0;
$mul = 2;
$l = 14;
for ($i = 0; $i < $l; $i++) { $digit = substr($str, $l – $i – 1, 1); $tp = intval($digit, 10) * $mul; if ($tp >= 10) {
$sum += ($tp % 10) + 1;
} else {
$sum += $tp;
}
if ($mul == 1) {
$mul++;
} else {
$mul–;
}
}

$chk = ((10 – ($sum % 10)) % 10);
return $str.strval($chk);
}

相关日志

发表于:2021-02-09 15:11:12 at 15:11 分类:代码 发表评论 Tags:

发表评论

(必填)

(必填)您的电子邮箱不会被公开。

Archives