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);
}
最近评论
6、7年前的内容了,外链能不挂吗?哈哈。…
链接挂了…
Thank you and thank you!…
应该是你IP有其它人扫描过我的系统,被我系统拦截了。一般24小时就解封。…
有,不过主题是2012年的了,兼容性不好了。还要吗?…
你好,我用公司的网络打开你的博客很多都是提示ip在黑名单,可是我们公司是…
你好,时隔这些年,我有幸访问到您的博客,我很喜欢您主题的风格,请问主题包…
09年的时候电信就干过,不过都是些偏远三线城市…