最新消息: 新版网站上线了!!!

判断身份证有效性和中文姓名的PHP代码

判断身份证有效性的

function isIdCard($number) {
    //加权因子 
    $wi = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
    //校验码串 
    $ai = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
    //按顺序循环处理前17位 
    for ($i = 0;$i < 17;$i++) { 
        //提取前17位的其中一位,并将变量类型转为实数 
        $b = (int) $number{$i}; 
 
        //提取相应的加权因子 
        $w = $wi[$i]; 
 
        //把从身份证号码中提取的一位数字和加权因子相乘,并累加 
        $sigma += $b * $w; 
    }
    //计算序号 
    $snumber = $sigma % 11; 
 
    //按照序号从校验码串中提取相应的字符。 
    $check_number = $ai[$snumber];
 
    if ($number{17} == $check_number) {
        return true;
    } else {
        return false;
    }
}

判断中文姓名(UTF-8,2-4位)

function isChineseName($name)
	if (preg_match('/^([\xe4-\xe9][\x80-\xbf]{2}){2,4}$/', $name)) {
		return true;
	} else {
		return false;
	}
}

使用方法:

if (!isChineseName('奶罩')) {
	echo "非中文名字";
} else {
	echo "中文名字";
}
if (!isIdCard('440823100000000000')) {
	echo "身份证号码不合法";
} else {
	echo "身份证号码正确";
}

转载请注明:谷谷点程序 » 判断身份证有效性和中文姓名的PHP代码