mysql正则表达式判断身份证是否合法
时间: 2023-11-08 15:55:10 浏览: 89
Mysql中正则表达式Regexp常见用法
可以使用正则表达式进行身份证的合法性判断,具体的正则表达式可以参考以下代码:
```
SELECT
id_card,
CASE WHEN id_card REGEXP '^[1-9]\\d{5}(19|20)\\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2]\\d|3[0-1])\\d{3}[0-9Xx]$' THEN '合法'
ELSE '不合法'
END AS is_valid
FROM
table_name;
```
其中,正则表达式的意义为:
- ^:表示字符串的开头。
- [1-9]:表示第一个字符为数字1-9。
- \\d{5}:表示后面跟着5个数字。
- (19|20):表示年份的前两位是19或20。
- \\d{2}:表示年份的后两位是两个数字。
- (0[1-9]|1[0-2]):表示月份为01-12。
- (0[1-9]|[1-2]\\d|3[0-1]):表示日期为01-31。
- \\d{3}:表示后面跟着3个数字。
- [0-9Xx]:表示最后一位可能是数字0-9,也可能是字母X或x。
- $:表示字符串的结尾。
如果身份证号码符合以上的正则表达式,则认为是合法的,否则就是不合法的。
阅读全文