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); }
|