php身份证正则表达式
时间: 2023-10-29 09:58:19 浏览: 147
这里是一个基本的 PHP 正则表达式,用于验证中国身份证号码的格式:
```php
function validateIDCard($idCard) {
// 判断身份证长度
if (strlen($idCard) !== 18) {
return false;
}
// 分解身份证号码
$code = str_split($idCard);
// 加权因子
$factor = array(7, 9, 10, 5, 8,4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
// 校验码对应值
$verifyCode = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
// 计算校验码所需值
$checksum = 0;
for ($i = 0; $i < 17; $i++) {
if (!is_numeric($code[$i])) {
return false;
}
$checksum += $code[$i] * $factor[$i];
}
// 取余数
$mod = $checksum % 11;
// 校验码验证
if ($verifyCode[$mod] === $code[17]) {
return true;
}
return false;
}
```
你可以使用这个函数来验证一个身份证号码,例如:
```php
$idCard = '身份证号码';
if (validateIDCard($idCard)) {
echo "身份证号码有效.";
} else {
echo "身份证号码无效.";
}
```
请记住,这只是一个基本的验证,不能验证身份证号码的真实性。在实际应用中,你可能还需要检查身份证号码的出生日期、地区码等信息来进行更准确的验证。
阅读全文