sqlserver身份证验证正则表达式
时间: 2023-10-09 14:06:34 浏览: 196
以下是一个简单的 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'
```
请注意,这个正则表达式只是一个基本的验证,不能保证身份证号码的真实性。如果你需要更可靠的验证,可以使用第三方验证服务或者自行编写更复杂的正则表达式。
相关问题
sql server验证身份证号的正则表达式
下面是一个用于验证中国身份证号的正则表达式:
```sql
^[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]$
```
该正则表达式的含义如下:
- `^`:匹配字符串的开始位置。
- `[1-9]`:匹配第一位数字,不能为0。
- `\d{5}`:匹配6-10位数字。
- `(19|20)\d{2}`:匹配出生年份,必须是19或20开头的4位数字。
- `(0[1-9]|1[0-2])`:匹配出生月份,必须是01-12之间的2位数字。
- `(0[1-9]|[1-2]\d|3[0-1])`:匹配出生日期,必须是01-31之间的2位数字。
- `\d{3}`:匹配身份证号码的倒数第二位到第四位(顺序是倒过来的)。这三位数字是随机数。
- `[0-9xX]`:匹配身份证号码的最后一位,可以是数字0-9或字母x或字母X。
- `$`:匹配字符串的结束位置。
你可以在查询中使用 `LIKE` 操作符和该正则表达式来验证身份证号,例如:
```sql
SELECT *
FROM my_table
WHERE id_card_number 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]$'
```
阅读全文