ホームページ > php教程 > PHP源码 > 身份证号码校验

身份证号码校验

PHP中文网
リリース: 2016-05-23 08:39:15
オリジナル
1509 人が閲覧しました

身份证号码校验

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.php.cn)!

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート