原生JS身份证验证与生成工具,支持CommonJS/AMD。
发布在mc-zone2015年1月29日view:2475前端开发ErickcepJavaScript
在文章任何区域双击击即可给文章添加【评注】!浮到评注点上可以查看详情。

学习过程中尝试写的一个插件

JS身份证号码验证器 IDValidator

支持15位与18位身份证号

支持 AMD/CommonJS, 或浏览器直接使用

API

isValid() 验证号码是否合法,合法返回true,不合法返回false

getInfo() 号码合法时返回分析信息(地区、出生日期、性别、校验位),不合法返回false

makeID() 伪造一个符合校验的ID

Getting Start

浏览器端直接使用

<script type="text/javascript" src="path/to/IDValidator/IDValidator.min.js" charset="utf-8" ></script>
<script type="text/javascript" src="path/to/IDValidator/GB2260.min.js" charset="utf-8" ></script>
<script type="text/javascript">

    //新建普通实例
    var Validator = new IDValidator();

    //或使用带地址码实例,需要引入GB2260
    var Validator = new IDValidator( GB2260 );

</script>

AMD / RequireJS

requirejs.config({
    paths: {
        IDValidator:'path/to/IDValidator',
        GB2260:'path/to/GB2260'
    }
});
require(["IDValidator","GB2260"], function(IDValidator,GB2260) {

    var Validator = new IDValidator();

});

CommonJS / Node

var IDValidator = require('path/to/IDValidator');
var GB2260 = require('path/to/GB2260');

var Validator = new IDValidator();

提示:所有API引入IDValidator.js就可以使用。

GB2260.js为GB 2260地址码数据,用于分析地址信息,在实例化时传入,可以不使用。

使用方法:

实例化查询器:

var Validator = new IDValidator();

实例化时可传入GB2260,信息处理中将加入地址信息

var Validator = new IDValidator( GB2260 );

查询身份证号是否合法

//JS中长数字有精度丢失问题, 请使用字符串传值
var id = "123456789012345678";

Validator.isValid( id );
//合法号码return true, 不合法return false

获取身份证号信息

Validator.getInfo( id );
/* 
 * 号码有效时返回内容示例:
 * {
 *   'addrCode': 100101, //地址码信息,
 *   'addr':     '北京市东城区', //地址信息, 只在实例化时传入了GB2260时返回
 *   'birth':    '1988-01-20', //出生年月日
 *   'sex':      1, //性别,0为女,1为男
 *   'checkBit': 'X', //校验位,仅当18位时存在
 *   'length':   18 //身份证类型,15位或18位
 * }
 */

伪造一个ID.

//制造一个18位ID
var ID = Validator.makeID();

//制造一个15位ID
var ID = Validator.makeID( true );

详见 Github.

评论
发表评论
9个月前
添加了一枚【评注】:需要new一个实例?
2年前
赞了此文章!
WRITTEN BY
mc-zone
Life is half spent before we know what it is.
TA的新浪微博
PUBLISHED IN
mc-zone

这个。。还能改吗? 试试使用

我的收藏