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;
}
}
function isChineseName($name){
if (preg_match('/^([\xe4-\xe9][\x80-\xbf]{2}){2,6}$/', $name)) {
return true;
} else {
return false;
}
}
使用
if (!isChineseName($name)) {
$error="姓名验证不通过,请检查输入是否正确";
$url = "http://******.com/error.php?error=".$error;
echo "<script type='text/javascript'>";
echo "window.location.href='$url'";
echo "</script>";
exit();
} else {
//echo "中文名字";
}
$preg_phone='/^1[34578]\d{9}$/ims';//检查手机号码
if(preg_match($preg_phone,$dianhua)){
//echo "号码正确";
} else {
$error="手机号码验证不通过,请检查输入是否正确";
$url = "http://******.com/error.php?error=".$error;
echo "<script type='text/javascript'>";
echo "window.location.href='$url'";
echo "</script>";
exit();
}
//检查身份证
if (!isIdCard($sfzid)) {
$error="身份证号码验证不通过,请检查输入是否正确";
$url = "http://******.com/error.php?error=".$error;
echo "<script type='text/javascript'>";
echo "window.location.href='$url'";
echo "</script>";
exit();
} else {
// echo "身份证号码正确";
}
正文完