PHP头条
热点:

身份证号码校验-PHP源码


身份证号码校验

function idcard_check($id)
{
    if ( ! preg_match('/^\d{18}$|^\d{17}X$/', $id) ) {
        return false;
    }

    $id = str_split($id);
    $x  = array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);
    $y  = array(1,0,'X',9,8,7,6,5,4,3,2);

    $sum = 0;
    foreach ($x as $k=>$v) {
        $sum += $id[$k]*$v;
    }
    return (string)$y[$sum%11]===$id[count($id)-1];
}

var_dump(idcard_check('身份证号码 末尾如果是X要大写'));

2. 补充一个js版本

function idcard_check(id)
{
    if(!/^\d{18}$|^\d{17}X$/.test(id)) return false;

    var code  = [1,0,'X',9,8,7,6,5,4,3,2];
    var sum = 0;
    for(var i=17; i>0; i--){
        sum += id[17-i] * Math.pow(2,i)%11;
    }
    return id[17]==code[sum%11];
}

console.log(idcard_check('身份证号码 末尾X需大写 必须是字符串类型'));

以上就是身份证号码校验的内容,更多相关内容请关注PHP中文网(www.php1.cn)!

www.phpzy.comtrue/phpyy/49279.htmlTechArticle身份证号码校验-PHP源码 身份证号码校验 function idcard_check($id){ if ( ! preg_match(/^\d{18}$|^\d{17}X$/, $id) ) { return false; } $id = str_split($id); $x = array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2); $y = array(1,0,X,9,8,7...

相关文章

PHP之友评论

今天推荐