sql身份证号正则验证
时间: 2023-08-29 18:10:48 浏览: 379
可以使用正则表达式来验证身份证号码是否符合规范,以下是一种常见的 SQL 正则表达式:
```sql
SELECT *
FROM users
WHERE REGEXP_LIKE(id_card, '^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])([0-2][1-9]|[1-3]\d|4[0-6]|5[0-3])\d{3}([0-9]|X)$');
```
其中,`id_card` 是要验证的身份证号码字段。这个正则表达式的含义是:
- `^` 匹配字符串的开始位置
- `[1-9]` 匹配 1-9 中的任意一个数字
- `\d{5}` 匹配 5 个数字
- `(19|20)` 匹配 19 或 20
- `\d{2}` 匹配 2 个数字
- `(0[1-9]|1[0-2])` 匹配 01-12 中的任意一个数字
- `([0-2][1-9]|[1-3]\d|4[0-6]|5[0-3])` 匹配 01-31 中的任意一个数字
- `\d{3}` 匹配 3 个数字
- `([0-9]|X)` 匹配 0-9 或 X
- `$` 匹配字符串的结束位置
这个正则表达式可以匹配符合规范的 18 位身份证号码。
相关问题
sqlserver身份证验证正则表达式
以下是一个简单的 SQL Server 正则表达式,用于验证中国大陆身份证号码:
```SQL
DECLARE @idNumber VARCHAR(18) = '身份证号码'
IF @idNumber LIKE '[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]'
PRINT 'Valid ID number'
ELSE
PRINT 'Invalid ID number'
```
请注意,这个正则表达式只是一个基本的验证,不能保证身份证号码的真实性。如果你需要更可靠的验证,可以使用第三方验证服务或者自行编写更复杂的正则表达式。
mysql 身份证号码正则表达式
以下是一个简单的 MySQL 正则表达式,可以用于验证身份证号码:
```sql
SELECT * FROM table_name WHERE id_number REGEXP '^[1-9]\\d{5}(18|19|20)\\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])\\d{3}[0-9Xx]$';
```
这个正则表达式匹配中国大陆的第一代和第二代身份证号码。如果您需要匹配其他类型的身份证号码,请自行修改正则表达式。