判断身份证号是否合法
-- =============================================
-- Description: <判断身份证号是否合法,返回结果对应如下:>
-- -2:含有非法字符
-- -1:位数不正确(不为15或18位)
-- 0:位数正确,但证号不合法
-- 1:位数正确,且证号合法
-- =============================================
create FUNCTION [dbo].[f_checksfzh]
(
@ID varchar(30) --要校验的证号
)
RETURNS int
AS
BEGIN
DECLARE @ID15 varchar(30),@S18 int,@check char,@result int
if len(@ID)<>18 and len(@ID)<>15
set @result = -1 --位数不正确
else if len(@ID)=15
begin
if ISNUMERIC(@ID)=1
set @result = 1
else
set @result = -2 --含有非法字符
end
else --18位
begin
if ISNUMERIC(left(@ID,17))<>1 or (upper(right(@ID,1))<>'X' and ISNUMERIC(right(@ID,1))<>1)
set @result = -2 --含有非法字符
else
begin
set @ID15 = left(@ID,6)+substring(@ID,9,len(@ID) -9 )
SET @S18 = ( (SUBSTRING(@ID15,1,1)*7) + (SUBSTRING(@ID15,2,1)*9) + (SUBSTRING(@ID15,3,1)*10)
+ (SUBSTRING(@ID15,4,1)*5) + (SUBSTRING(@ID15,5,1)*8) + (SUBSTRING(@ID15,6,1)*4) + (1*2) + (9*1)
+ (SUBSTRING(@ID15,7,1)*6) + (SUBSTRING(@ID15,8,1)*3) + (SUBSTRING(@ID15,9,1)*7)
+ (SUBSTRING(@ID15,10,1)*9)+ (SUBSTRING(@ID15,11,1)*10)+ (SUBSTRING(@ID15,12,1)*5)
+ (SUBSTRING(@ID15,13,1)*8) +(SUBSTRING(@ID15,14,1)*4) + (SUBSTRING(@ID15,15,1)*2) ) % 11
if @S18 = 0 set @check='1'
if @S18 = 1 set @check='0'
if @S18 = 2 set @check='X'
if @S18 = 3 set @check='9'
if @S18 = 4 set @check='8'
if @S18 = 5 set @check='7'
if @S18 = 6 set @check='6'
if @S18 = 7 set @check='5'
if @S18 = 8 set @check='4'
if @S18 = 9 set @check='3'
if @S18 = 10 set @check='2'
if @check=right(upper(@ID),1) set @result=1
else set @result=0
END
end
RETURN @result
END
转载于:https://www.cnblogs.com/zhycyq/archive/2012/07/11/2585739.html
判断身份证号是否合法相关推荐
- 判断身份证号是否合法;验证城市区号,生日
判断身份证号是否合法 ; 验证城市区号 , 生日 直接上代码 /*** 判断身份证号是否合法* 验证城市区号;生日* Date:2018年12月29日 * @author D2yml**/ publi ...
- 判断身份证号,根据身份证号自动生成出生日期
判断身份证号,根据身份证号自动生成出生日期 idCodeValid(rule, value, callback) => {let reg = /(^[1-9]\d{5}(18|19|([23]\ ...
- Java验证身份证号是否合法
身份证作为居民的唯一标识.在很多系统中需要用户输入身份证号信息,今天我们就来编写一个方法验证身份证号的合法性. 首先我们来看看身份证号的编码规则: 前1-2位数字表示:所在省(直辖市.自治区)的代码: ...
- 利用正则表达式判断身份证号
package com.alex.RegExp;import java.io.BufferedReader; import java.io.IOException; import java.io.In ...
- 验证身份证号是否合法
一.身份证位数15或者18位 最后一位可以为字母 二.身份证前6位[ABCDEF]为行政区划数字代码(简称数字码): –15位身份证号码:第7.8位为出生年份(两位数),第9.10位为出生月份,第11 ...
- 用python判断身份证号性别_验证身份证号的Python脚本
引用 a[0], a[1], a[2], a[3], ..., a[16], a[17] 其中a[i]表示第i位数字,i=0,1,2,...,17,如果最后一位(校验位)是X,则a[17]=10 每一 ...
- php 判断身份证号是否正确
public function validateIDCard($idcard) {if(empty($idcard)){return '错误身份证';}else{$idcard = strtouppe ...
- Excel表格函数判断身份证号是否正确
D4为身份证号所在的位置 =IF(LEN(D4)=0,"空",IF(LEN(D4)=15,"老号",IF(LEN(D4)<>18,"位数不 ...
- PHP 判断身份证号
PHP 检验身份证号可以使用正则表达式来实现.可以在正则表达式中规定身份证号的格式,然后使用 PHP 中的 preg_match 函数来判断输入的字符串是否符合这个格式.如果符合,返回 true,不符 ...
最新文章
- 2022-2028年中国激光全息膜行业市场现状调研及市场需求潜力报告
- sklearn中的Pipline(流水线学习器)
- PMCAFF | 产品经理的招聘要求调研分析
- 【Python3】Python模块与包的导入
- alipay html5 app,H5App支付宝开发详解
- java php python 高并发_关于php如何调用Python快速发送高并发邮件的示例代码
- 前后端分离开发模式下后端质量的保证 —— 单元测试
- 前端学习(2784):首页轮播图的渲染
- (论文)WS-DAN (弱监督数据增强)
- 树状数组相关应用之多叉树子树问题
- sql server表分区_介绍分区表SQL Server增量统计信息
- ORACLE数据库定时任务自动停止(broken)的原因分析及解决办法
- String 和 InputStream 互转方式
- apache加nginx加Php,Apache/Nginx为PHP设置、添加$_SERVER服务器环境变量
- 企业软件 - 创新尝试 - 用友 股份 产业链创新中心 - 产品流程会议问题解决 - 杨天政 - 原型产品发版标准 - 2014-3-13
- 热点素材在哪找?5年自媒体人,我推荐这3个平台
- C++实现贪吃蛇游戏
- 利用阿里云ECS搭建微信公众平台服务器
- S100数字源表之LDO芯片电学特性测试方案
- 90个面试问题(带答案)
热门文章
- 好分数a1a5_好分数怎么查看班级排名 七年级学生成绩查询
- 4.5.2 OSPF协议与链路状态算法
- Ti公司DSP的DSK、EVM、DDK的区别
- FFT频谱泄露和加窗 (一)
- Youth---青春
- “大众搬家”何其多啊?[3/14/2007 update]
- Angular vs React 最全面深入对比
- iOS开发网络篇—多线程断点下载
- CKFinder 自定义文件路径扩展ConfigurationPathBuilder
- 关于无法显示-隐藏文件、文件夹以及操作系统文件夹