中国大陆个人身份证号码验证器(JS版)
Chinese Mainland Personal ID Card Validation
支持15位与18位身份证号
支持 AMD/CMD/CommonJS, 或浏览器直接使用
isValid() 验证号码是否合法,合法返回true,不合法返回false
getInfo() 号码合法时返回分析信息(地区、出生日期、性别、校验位),不合法返回false
makeID() 伪造一个符合校验的ID
<scripttype="text/javascript" src="path/to/IDValidator/IDValidator.min.js" charset="utf-8" ></script><scripttype="text/javascript" src="path/to/IDValidator/GB2260.min.js" charset="utf-8" ></script><scripttype="text/javascript">//新建普通实例varValidator=newIDValidator();//或使用带地址码实例,需要引入GB2260varValidator=newIDValidator(GB2260);</script>requirejs.config({paths: {IDValidator:'path/to/IDValidator',GB2260:'path/to/GB2260'}});require(["IDValidator","GB2260"],function(IDValidator,GB2260){varValidator=newIDValidator();//或使用地址库varValidator2=newIDValidator(GB2260);});define(function(require,exports,module){varIDValidator=require('path/to/IDValidator');varValidator=newIDValidator();//或使用地址库varGB2260=require('path/to/GB2260');varValidator2=newIDValidator(GB2260);});Install via npm:
npm i id-validator --savevarIDValidator=require('id-validator');varGB2260=require('id-validator/src/GB2260');varValidator=newIDValidator(GB2260);提示:所有API引入IDValidator.js就可以使用。
GB2260.js为GB 2260地址码数据,用于分析地址信息,在实例化时传入,可以不使用。
压缩后:
IDValidator.min.js 3K
GB2260.min.js 140K
实例化查询器:
varValidator=newIDValidator();实例化时可传入GB2260,信息处理中将加入地址信息
varValidator=newIDValidator(GB2260);查询身份证号是否合法
//JS中长数字有精度丢失问题, 请使用字符串传值varid="123456789012345678";Validator.isValid(id);//合法号码return true, 不合法return falseValidator.isValid(id,18);//强制要求18位ID注:
JS中长数字有精度丢失问题, 长数字请使用字符串传值
由于15位身份证号不含校验码,只能依据地址与日期是否存在进行判断
获取身份证号信息
Validator.getInfo(id);/* * 号码有效时返回内容示例: * { * 'addrCode': 100101, //地址码信息, * 'addr': '北京市东城区', //地址信息, 只在实例化时传入了GB2260时返回 * 'birth': '1988-01-20', //出生年月日 * 'sex': 1, //性别,0为女,1为男 * 'checkBit': 'X', //校验位,仅当18位时存在 * 'length': 18 //身份证类型,15位或18位 * } */Validator.getInfo(id,18);//强制要求18位ID伪造一个ID
//制造一个18位IDvarID=Validator.makeID();//制造一个15位IDvarID=Validator.makeID(true);详见 examples .
GB 11643-1999 公民身份证号码
GB 2260-1995 中华人民共和国行政区划代码
MIT