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

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

最近有用到,刚好记录一下方便后续查看,通过Javascript或PHP校验IMEI代码,以及14位IMEI补全15位的计算方法。

Javascript校验

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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;
}

PHP14位IMEI补全15位

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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);
}

🔰本文标题: PHP/Javascript代码校验补全位数IMEI

🔞本文链接: https://1han.wiki/js-phpjnyj-imei/index.html

🌡️本文总热度