*************************
* 身份证号码验证方法
*************************
*PARAMETERS SFZ
CLEAR
CLOSE TABLES
**oldgzq=select()
LOCAL RQ,XB,ZFZH
SFZ="34052219870228001X"
XB="男"
SFZH=""
*----身份证号码位数验证
IF !INLIST(LEN(SFZ),15,18)
MESSAGEBOX("身份证号码位数不够",64,"系统信息")
RETURN
ENDIF
*----统一位数为17位
IF LEN(SFZH)=15
SFZH=STUFF(SFZ,7,0,"19") &&补足17位
ELSE
SFZH=LEFT(SFZ,17)
ENDIF
*----出生日期"月"初查
IF !BETWEEN(VAL(SUBSTR(SFZH,11,2)),1,12)
MESSAGEBOX("身份证号码出生日期【月】代码超出范围",64,"系统信息")
RETURN
ENDIF
*----出生日期"日"初查
IF !BETWEEN(VAL(SUBSTR(SFZH,13,2)),1,31)
MESSAGEBOX("身份证号码出生日期【日】代码超出范围",64,"系统信息")
RETURN
ENDIF
RQ=DATE(VAL(SUBSTR(SFZH,7,4)),VAL(SUBSTR(SFZH,11,2)),VAL(SUBSTR(SFZH,13,2))) &&转换为出生日期
*----身份证发放地代码验证(前6位数字)
USE QHDM ALIAS QHDM &&行政区划代码表
LOCATE FOR 区划代码
身份证号码验证方法
最新推荐文章于 2021-06-24 18:04:49 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)