身份证号js验证

本文介绍了如何使用JavaScript编写和应用脚本来实现身份证号码的有效性验证,包括编写必要的验证脚本和可能涉及的JS插件使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、先写两个js脚本

IDValidator.js
<script type="text/javascript">
function IDValidator() {
	var param = {
		error : {
			longNumber : '长数字存在精度问题,请使用字符串传值! Long number is not allowed, because the precision of the Number In JavaScript.'
		}
	};
	var util = {
		checkArg : function(id) {
			var argType = (typeof id);
 
			switch (argType) {
			case 'number':
				// long number not allowed
				id = id.toString();
				if (id.length > 15) {
					this.error(param.error.longNumber);
					return false;
				}
				break;
			case 'string':
				break;
			default:
				return false;
			}
			id = id.toUpperCase();
			var code = null;
			if (id.length === 18) {
				// 18位
				code = {
					body : id.slice(0, 17),
					checkBit : id.slice(-1),
					type : 18
				};
			} else if (id.length === 15) {
				// 15位
				code = {
					body : id,
					type : 15
				};
			} else {
				return false;
			}
			return code;
		}
		// 地址码检查
		,
		checkAddr : function(addr, GB2260) {
			var addrInfo = this.getAddrInfo(addr, GB2260);
			return (addrInfo === false ? false : true);
		}
		// 取得地址码信息
		,
		getAddrInfo : function(addr, GB2260) {
			GB2260 = GB2260 || null;
			// 查询GB/T2260,没有引入GB2260时略过
			if (GB2260 === null) {
				return addr;
			}
			if (!GB2260.hasOwnProperty(addr)) {
				// 考虑标准不全的情况,搜索不到时向上搜索
				var tmpAddr;
				tmpAddr = addr.slice(0, 4) + '00';
				if (!GB2260.hasOwnProperty(tmpAddr)) {
					tmpAddr = addr.slice(0, 2) + '0000';
					if (!GB2260.hasOwnProperty(tmpAddr)) {
						return false;
					} else {
						return GB2260[tmpAddr] + '未知地区';
					}
				} else {
					return GB2260[tmpAddr] + '未知地区';
				}
			} else {
				return GB2260[addr];
			}
		}
		// 生日码检查
		,
		checkBirth : function(birth) {
			var year, month, day;
			if (birth.length == 8) {
				year = parseInt(birth.slice(0, 4), 10);
				month = parseInt(birth.slice(4, 6), 10);
				day = parseInt(birth.slice(-2), 10);
			} else if (birth.length == 6) {
				year = parseInt('19' + birth.slice(0, 2), 10);
				month = parseInt(birth.slice(2, 4), 10);
				day = parseInt(birth.slice(-2), 10);
			} else {
				return false;
			}
			// TODO 是否需要判断年份
			/*
			 * if( year<1800 ){ return false; }
			 */
			// TODO 按月份检测
			if (month > 12 || month === 0 || day > 31 || day === 0) {
				return false;
			}
 
			return true;
		}
		// 顺序码检查
		,
		checkOrder : function(order) {
			// 暂无需检测
 
			return true;
		}
		// 加权
		,
		weight : function(t) {
			return Math.pow(2, t - 1) % 11;
		}
		// 随机整数
		,
		rand : function(max, min) {
			min = min || 1;
			return Math.round(Math.random() * (max - min)) + min;
		}
		// 数字补位
		,
		str_pad : function(str, len, chr, right) {
			str = str.toString();
			len = len || 2;
			chr = chr || '0';
			right = right || false;
			if (str.length >= len) {
				return str;
			} else {
				for (var i = 0, j = len - str.length; i < j; i++) {
					if (right) {
						str = str + chr;
					} else {
						str = chr + str;
					}
				}
				return str;
			}
		}
		// 抛错
		,
		error : function(msg) {
			var e = new Error();
			e.message = 'IDValidator: ' + msg;
			throw e;
		}
	};
	var _IDValidator = function(GB2260) {
		if (typeof GB2260 !== "undefined") {
			this.GB2260 = GB2260;
		}
		// 建立cache
		this.cache = {};
	};
	_IDValidator.prototype = {
		isValid : function(id) {
			var GB2260 = this.GB2260 || null;
			var code = util.checkArg(id);
			if (code === false) {
				return false;
			}
			// 查询cache
			if (this.cache.hasOwnProperty(id)
					&& typeof this.cache[id].valid !== 'undefined') {
				return this.cache[id].valid;
			} else {
				if (!this.cache.hasOwnProperty(id)) {
					this.cache[id] = {};
				}
			}
 
			var addr = code.body.slice(0, 6);
			var birth = (code.type === 18 ? code.body.slice(6, 14) : code.body
					.slice(6, 12));
			var order = code.body.slice(-3);
 
			if (!(util.checkAddr(addr, GB2260) && util.checkBirth(birth) && util
					.checkOrder(order))) {
				this.cache[id].valid = false;
				return false;
			}
 
			// 15位不含校验码,到此已结束
			if (code.type === 15) {
				this.cache[id].valid = true;
				return true;
			}
 
			/* 校验位部分 */
 
			// 位置加权
			var posWeight = [];
			for (var i = 18; i > 1; i--) {
				var wei = util.weight(i);
				posWeight[i] = wei;
			}
 
			// 累加body部分与位置加权的积
			var bodySum = 0;
			var bodyArr = code.body.split('');
			for (var j = 0; j < bodyArr.length; j++) {
				bodySum += (parseInt(bodyArr[j], 10) * posWeight[18 - j]);
			}
 
			// 得出校验码
			var checkBit = 12 - (bodySum % 11);
			if (checkBit == 10) {
				checkBit = 'X';
			} else if (checkBit > 10) {
				checkBit = checkBit % 11;
			}
			checkBit = (typeof checkBit === 'number' ? checkBit.toString()
					: checkBit);
 
			// 检查校验码
			if (checkBit !== code.checkBit) {
				this.cache[id].valid = false;
				return false;
			} else {
				this.cache[id].valid = true;
				return true;
			}
 
		}
 
		// 分析详细信息
		,
		getInfo : function(id) {
			var GB2260 = this.GB2260 || null;
			// 号码必须有效
			if (this.isValid(id) === false) {
				return false;
			}
			// TODO 复用此部分
			var code = util.checkArg(id);
 
			// 查询cache
			// 到此时通过isValid已经有了cache记录
			if (typeof this.cache[id].info !== 'undefined') {
				return this.cache[id].info;
			}
 
			var addr = code.body.slice(0, 6);
			var birth = (code.type === 18 ? code.body.slice(6, 14) : code.body
					.slice(6, 12));
			var order = code.body.slice(-3);
 
			var info = {};
			info.addrCode = addr;
			if (GB2260 !== null) {
				info.addr = util.getAddrInfo(addr, GB2260);
			}
			info.birth = (code.type === 18 ? (([ birth.slice(0, 4),
					birth.slice(4, 6), birth.slice(-2) ]).join('-')) : ([
					'19' + birth.slice(0, 2), birth.slice(2, 4),
					birth.slice(-2) ]).join('-'));
			info.sex = (order % 2 === 0 ? 0 : 1);
			info.length = code.type;
			if (code.type === 18) {
				info.checkBit = code.checkBit;
			}
 
			// 记录cache
			this.cache[id].info = info;
 
			return info;
		}
 
		// 仿造一个号
		,
		makeID : function(isFifteen) {
			var GB2260 = this.GB2260 || null;
 
			// 地址码
			var addr = null;
			if (GB2260 !== null) {
				var loopCnt = 0;
				while (addr === null) {
					// 防止死循环
					if (loopCnt > 10) {
						addr = 110101;
						break;
					}
					var prov = util.str_pad(util.rand(50), 2, '0');
					var city = util.str_pad(util.rand(20), 2, '0');
					var area = util.str_pad(util.rand(20), 2, '0');
					var addrTest = [ prov, city, area ].join('');
					if (GB2260[addrTest]) {
						addr = addrTest;
						break;
					}
				}
			} else {
				addr = 110101;
			}
 
			// 出生年
			var yr = util.str_pad(util.rand(99, 50), 2, '0');
			var mo = util.str_pad(util.rand(12, 1), 2, '0');
			var da = util.str_pad(util.rand(28, 1), 2, '0');
			if (isFifteen) {
				return addr + yr + mo + da
						+ util.str_pad(util.rand(999, 1), 3, '1');
			}
 
			yr = '19' + yr;
			var body = addr + yr + mo + da
					+ util.str_pad(util.rand(999, 1), 3, '1');
 
			// 位置加权
			var posWeight = [];
			for (var i = 18; i > 1; i--) {
				var wei = util.weight(i);
				posWeight[i] = wei;
			}
 
			// 累加body部分与位置加权的积
			var bodySum = 0;
			var bodyArr = body.split('');
			for (var j = 0; j < bodyArr.length; j++) {
				bodySum += (parseInt(bodyArr[j], 10) * posWeight[18 - j]);
			}
 
			// 得出校验码
			var checkBit = 12 - (bodySum % 11);
			if (checkBit == 10) {
				checkBit = 'X';
			} else if (checkBit > 10) {
				checkBit = checkBit % 11;
			}
			checkBit = (typeof checkBit === 'number' ? checkBit.toString()
					: checkBit);
 
			return (body + checkBit);
		}
 
	};// _IDValidator
	GB2260 = GB2260 == null ? "" : GB2260;
	return new _IDValidator(GB2260);
}

</script>
GB2260.js
<script type="text/javascript">
var GB2260 = {
	"110000" : "北京市",
	"110100" : "北京市市辖区",
	"110101" : "北京市东城区",
	"110102" : "北京市西城区",
	"110103" : "北京市崇文区",
	"110104" : "北京市宣武区",
	"110105" : "北京市朝阳区",
	"110106" : "北京市丰台区",
	"110107" : "北京市石景山区",
	"110108" : "北京市海淀区",
	"110109" : "北京市门头沟区",
	"110111" : "北京市房山区",
	"110112" : "北京市通州区",
	"110113" : "北京市顺义区",
	"110200" : "北京市县",
	"110221" : "北京市昌平县",
	"110224" : "北京市大兴县",
	"110226" : "北京市平谷县",
	"110227" : "北京市怀柔县",
	"110228" : "北京市密云县",
	"110229" : "北京市延庆县",
	"120000" : "天津市",
	"120100" : "天津市市辖区",
	"120101" : "天津市和平区",
	"120102" : "天津市河东区",
	"120103" : "天津市河西区",
	"120104" : "天津市南开区",
	"120105" : "天津市河北区",
	"120106" : "天津市红桥区",
	"120107" : "天津市塘沽区",
	"120108" : "天津市汉沽区",
	"120109" : "天津市大港区",
	"120110" : "天津市东丽区",
	"120111" : "天津市西青区",
	"120112" : "天津市津南区",
	"120113" : "天津市北辰区",
	"120200" : "天津市县",
	"120221" : "天津市宁河县",
	"120222" : "天津市武清县",
	"120223" : "天津市静海县",
	"120224" : "天津市宝坻县",
	"120225" : "天津市蓟县",
	"130000" : "河北省",
	"130100" : "河北省石家庄市",
	"130101" : "河北省石家庄市市辖区",
	"130102" : "河北省石家庄市长安区",
	"130103" : "河北省石家庄市桥东区",
	"130104" : "河北省石家庄市桥西区",
	"130105" : "河北省石家庄市新华区",
	"130106" : "河北省石家庄市郊区",
	"130107" : "河北省石家庄市井陉矿区",
	"130121" : "河北省石家庄市井陉县",
	"130123" : "河北省石家庄市正定县",
	"130124" : "河北省石家庄市栾城县",
	"130125" : "河北省石家庄市行唐县",
	"130126" : "河北省石家庄市灵寿县",
	"130127" : "河北省石家庄市高邑县",
	"130128" : "河北省石家庄市深泽县",
	"130129" : "河北省石家庄市赞皇县",
	"130130" : "河北省石家庄市无极县",
	"130131" : "河北省石家庄市平山县",
	"130132" : "河北省石家庄市元氏县",
	"130133" : "河北省石家庄市赵县",
	"130181" : "河北省石家庄市辛集市",
	"130182" : "河北省石家庄市藁城市",
	"130183" : "河北省石家庄市晋州市",
	"130184" : "河北省石家庄市新乐市",
	"130185" : "河北省石家庄市鹿泉市",
	"130200" : "河北省唐山市",
	"130201" : "河北省唐山市市辖区",
	"130202" : "河北省唐山市路南区",
	"130203" : "河北省唐山市路北区",
	"130204" : "河北省唐山市古冶区",
	"130205" : "河北省唐山市开平区",
	"130206" : "河北省唐山市新区",
	"130221" : "河北省唐山市丰润县",
	"130223" : "河北省唐山市滦县",
	"130224" : "河北省唐山市滦南县",
	"130225" : "河北省唐山市乐亭县",
	"130227" : "河北省唐山市迁西县",
	"130229" : "河北省唐山市玉田县",
	"130230" : "河北省唐山市唐海县",
	"130281" : "河北省唐山市遵化市",
	"130282" : "河北省唐山市丰南市",
	"130283" : "河北省唐山市迁安市",
	"130300" : "河北省秦皇岛市秦皇岛市",
	"130301" : "河北省秦皇岛市市辖区",
	"130302" : "河北省秦皇岛市海港区",
	"130303" : "河北省秦皇岛市山海关区",
	"130304" : "河北省秦皇岛市北戴河区",
	"130321" : "河北省秦皇岛市青龙满族自治县",
	"130322" : "河北省秦皇岛市昌黎县",
	"130323" : "河北省秦皇岛市抚宁县",
	"130324" : "河北省秦皇岛市卢龙县",
	"130400" : "河北省邯郸市邯郸市",
	"130401" : "河北省邯郸市市辖区",
	"130402" : "河北省邯郸市邯山区",
	"130403" : "河北省邯郸市丛台区",
	"130404" : "河北省邯郸市复兴区",
	"130406" : "河北省邯郸市峰峰矿区",
	"130421" : "河北省邯郸市邯郸县",
	"130423" : "河北省邯郸市临漳县",
	"130424" : "河北省邯郸市成安县",
	"130425" : "河北省邯郸市大名县",
	"130426" : "河北省邯郸市涉县",
	"130427" : "河北省邯郸市磁县",
	"130428" : "河北省邯郸市肥乡县",
	"130429" : "河北省邯郸市永年县",
	"130430" : "河北省邯郸市邱县",
	"130431" : "河北省邯郸市鸡泽县",
	"130432" : "河北省邯郸市广平县",
	"130433" : "河北省邯郸市馆陶县",
	"130434" : "河北省邯郸市魏县",
	"130435" : "河北省邯郸市曲周县",
	"130481" : "河北省邯郸市武安市",
	"130500" : "河北省邢台市",
	"130501" : "河北省邢台市市辖区",
	"130502" : "河北省邢台市桥东区",
	"130503" : "河北省邢台市桥西区",
	"130521" : "河北省邢台市邢台县",
	"130522" : "河北省邢台市临城县",
	"130523" : "河北省邢台市内丘县",
	"130524" : "河北省邢台市柏乡县",
	"130525" : "河北省邢台市隆尧县",
	"130526" : "河北省邢台市任县",
	"130527" : "河北省邢台市南和县",
	"130528" : "河北省邢台市宁晋县",
	"130529" : "河北省邢台市巨鹿县",
	"130530" : "河北省邢台市新河县",
	"130531" : "河北省邢台市广宗县",
	"130532" : "河北省邢台市平乡县",
	"130533" : "河北省邢台市威县",
	"130534" : "河北省邢台市清河县",
	"130535" : "河北省邢台市临西县",
	"130581" : "河北省邢台市南宫市",
	"130582" : "河北省邢台市沙河市",
	"130600" : "河北省保定市",
	"130601" : "河北省保定市市辖区",
	"130602" : "河北省保定市新市区",
	"130603" : "河北省保定市北市区",
	"130604" : "河北省保定市南市区",
	"130621" : "河北省保定市满城县",
	"130622" : "河北省保定市清苑县",
	"130623" : "河北省保定市涞水县",
	"130624" : "河北省保定市阜平县",
	"130625" : "河北省保定市徐水县",
	"130626" : "河北省保定市定兴县",
	"130627" : "河北省保定市唐县",
	"130628" : "河北省保定市高阳县",
	"130629" : "河北省保定市容城县",
	"130630" : "河北省保定市涞源县",
	"130631" : "河北省保定市望都县",
	"130632" : "河北省保定市安新县",
	"130633" : "河北省保定市易县",
	"130634" : "河北省保定市曲阳县",
	"130635" : "河北省保定市蠡县",
	"130636" : "河北省保定市顺平县",
	"130637" : "河北省保定市博野县",
	"130638" : "河北省保定市雄县",
	"130681" : "河北省保定市涿州市",
	"130682" : "河北省保定市定州市",
	"130683" : "河北省保定市安国市",
	"130684" : "河北省保定市高碑店市",
	"130700" : "河北省张家口市",
	"130701" : "河北省张家口市市辖区",
	"130702" : "河北省张家口市桥东区",
	"130703" : "河北省张家口市桥西区",
	"130705" : "河北省张家口市宣化区",
	"130706" : "河北省张家口市下花园区",
	"130721" : "河北省张家口市宣化县",
	"130722" : "河北省张家口市张北县",
	"130723" : "河北省张家口市康保县",
	"130724" : "河北省张家口市沽源县",
	"130725" : "河北省张家口市尚义县",
	"130726" : "河北省张家口市蔚县",
	"130727" : "河北省张家口市阳原县",
	"130728" : "河北省张家口市怀安县",
	"130729" : "河北省张家口市万全县",
	"130730" : "河北省张家口市怀来县",
	"130731" : "河北省张家口市涿鹿县",
	"130732" : "河北省张家口市赤城县",
	"130733" : "河北省张家口市崇礼县",
	"130800" : "河北省承德市",
	"130801" : "河北省承德市市辖区",
	"130802" : "河北省承德市双桥区",
	"130803" : "河北省承德市双滦区",
	"130804" : "河北省承德市鹰手营子矿区",
	"130821" : "河北省承德市承德县",
	"130822" : "河北省承德市兴隆县",
	"130823" : "河北省承德市平泉县",
	"130824" : "河北省承德市滦平县",
	"130825" : "河北省承德市隆化县",
	"130826" : "河北省承德市丰宁满族自治县",
	"130827" : "河北省承德市宽城满族自治县",
	"130828" : "河北省承德市围场满族蒙古族自治县",
	"130900" : "河北省沧州市",
	"130901" : "河北省沧州市市辖区",
	"130902" : "河北省沧州市新华区",
	"130903" : "河北省沧州市运河区",
	"130921" : "河北省沧州市沧县",
	"130922" : "河北省沧州市青县",
	"130923" : "河北省沧州市东光县",
	"130924" : "河北省沧州市海兴县",
	"130925" : "河北省沧州市盐山县",
	"130926" : "河北省沧州市肃宁县",
	"130927" : "河北省沧州市南皮县",
	"130928" : "河北省沧州市吴桥县",
	"130929" : "河北省沧州市献县",
	"130930" : "河北省沧州市孟村回族自治县",
	"130981" : "河北省沧州市泊头市",
	"130982" : "河北省沧州市任丘市",
	"130983" : "河北省沧州市黄骅市",
	"130984" : "河北省沧州市河间市",
	"131000" : "河北省廊坊市",
	"131001" : "河北省廊坊市市辖区",
	"131002" : "河北省廊坊市安次区",
	"131022" : "河北省廊坊市固安县",
	"131023" : "河北省廊坊市永清县",
	"131024" : "河北省廊坊市香河县",
	"131025" : "河北省廊坊市大城县",
	"131026" : "河北省廊坊市文安县",
	"131028" : "河北省廊坊市大厂回族自治县",
	"131081" : "河北省廊坊市霸州市",
	"131082" : "河北省廊坊市三河市",
	"131100" : "河北省衡水市",
	"131101" : "河北省衡水市市辖区",
	"131102" : "河北省衡水市桃城区",
	"131121" : "河北省衡水市枣强县",
	"131122" : "河北省衡水市武邑县",
	"131123" : "河北省衡水市武强县",
	"131124" : "河北省衡水市饶阳县",
	"131125" : "河北省衡水市安平县",
	"131126" : "河北省衡水市故城县",
	"131127" : "河北省衡水市景县",
	"131128" : "河北省衡水市阜城县",
	"131181" : "河北省衡水市冀州市",
	"131182" : "河北省衡水市深州市",
	"140000" : "山西省",
	"140100" : "山西省太原市",
	"140101" : "山西省太原市市辖区",
	"140105" : "山西省太原市小店区",
	"140106" : "山西省太原市迎泽区",
	"140107" : "山西省太原市杏花岭区",
	"140108" : "山西省太原市尖草坪区",
	"140109" : "山西省太原市万柏林区",
	"140110" : "山西省太原市晋源区",
	"140121" : "山西省太原市清徐县",
	"140122" : "山西省太原市阳曲县",
	"140123" : "山西省太原市娄烦县",
	"140181" : "山西省太原市古交市",
	"140200" : "山西省大同市",
	"140201" : "山西省大同市市辖区",
	"140202" : "山西省大同市城区",
	"140203" : "山西省大同市矿区",
	"140211" : "山西省大同市南郊区",
	"140212" : "山西省大同市新荣区",
	"140221" : "山西省大同市阳高县",
	"140222" : "山西省大同市天镇县",
	"140223" : "山西省大同市广灵县",
	"140224" : "山西省大同市灵丘县",
	"140225" : "山西省大同市浑源县",
	"140226" : "山西省大同市左云县",
	"140227" : "山西省大同市大同县",
	"140300" : "山西省阳泉市",
	"140301" : "山西省阳泉市市辖区",
	"140302" : "山西省阳泉市城区",
	"140303" : "山西省阳泉市矿区",
	"140311" : "山西省阳泉市郊区",
	"140321" : "山西省阳泉市平定县",
	"140322" : "山西省阳泉市盂县",
	"140400" : "山西省长治市",
	"140401" : "山西省长治市市辖区",
	"140402" : "山西省长治市城区",
	"140411" : "山西省长治市郊区",
	"140421" : "山西省长治市长治县",
	"140423" : "山西省长治市襄垣县",
	"140424" : "山西省长治市屯留县",
	"140425" : "山西省长治市平顺县",
	"140426" : "山西省长治市黎城县",
	"140427" : "山西省长治市壶关县",
	"140428" : "山西省长治市长子县",
	"140429" : "山西省长治市武乡县",
	"140430" : "山西省长治市沁县",
	"140431" : "山西省长治市沁源县",
	"140481" : "山西省长治市潞城市",
	"140500" : "山西省晋城市",
	"140501" : "山西省晋城市市辖区",
	"140502" : "山西省晋城市城区",
	"140521" : "山西省晋城市沁水县",
	"140522" : "山西省晋城市阳城县",
	"140524" : "山西省晋城市陵川县",
	"140525" : "山西省晋城市泽州县",
	"140581" : "山西省晋城市高平市",
	"140600" : "山西省晋城市朔州市",
	"140601" : "山西省晋城市市辖区",
	"140602" : "山西省晋城市朔城区",
	"140603" : "山西省晋城市平鲁区",
	"140621" : "山西省晋城市山阴县",
	"140622" : "山西省晋城市应县",
	"140623" : "山西省晋城市右玉县",
	"140624" : "山西省晋城市怀仁县",
	"142200" : "山西省忻州地区",
	"142201" : "山西省忻州地区忻州市",
	"142202" : "山西省忻州地区原平市",
	"142222" : "山西省忻州地区定襄县",
	"142223" : "山西省忻州地区五台县",
	"142225" : "山西省忻州地区代县",
	"142226" : "山西省忻州地区繁峙县",
	"142227" : "山西省忻州地区宁武县",
	"142228" : "山西省忻州地区静乐县",
	"142229" : "山西省忻州地区神池县",
	"142230" : "山西省忻州地区五寨县",
	"142231" : "山西省忻州地区岢岚县",
	"142232" : "山西省忻州地区河曲县",
	"142233" : "山西省忻州地区保德县",
	"142234" : "山西省忻州地区偏关县",
	"142300" : "山西省忻州地区吕梁地区",
	"142301" : "山西省忻州地区孝义市",
	"142302" : "山西省忻州地区离石市",
	"142303" : "山西省忻州地区汾阳市",
	"142322" : "山西省忻州地区文水县",
	"142323" : "山西省忻州地区交城县",
	"142325" : "山西省忻州地区兴县",
	"142326" : "山西省忻州地区临县",
	"142327" : "山西省忻州地区柳林县",
	"142328" : "山西省忻州地区石楼县",
	"142329" : "山西省忻州地区岚县",
	"142330" : "山西省忻州地区方山县",
	"142332" : "山西省忻州地区中阳县",
	"142333" : "山西省忻州地区交口县",
	"142400" : "山西省晋中地区",
	"142401" : "山西省晋中地区榆次市",
	"142402" : "山西省晋中地区介休市",
	"142421" : "山西省晋中地区榆社县",
	"142422" : "山西省晋中地区左权县",
	"142423" : "山西省晋中地区和顺县",
	"142424" : "山西省晋中地区昔阳县",
	"142427" : "山西省晋中地区寿阳县",
	"142429" : "山西省晋中地区太谷县",
	"142430" : "山西省晋中地区祁县",
	"142431" : "山西省晋中地区平遥县",
	"142433" : "山西省晋中地区灵石县",
	"142600" : "山西省临汾地区",
	"142601" : "山西省临汾地区临汾市",
	"142602" : "山西省临汾地区侯马市",
	"142603" : "山西省临汾地区霍州市",
	"142621" : "山西省临汾地区曲沃县",
	"142622" : "山西省临汾地区翼城县",
	"142623" : "山西省临汾地区襄汾县",
	"142625" : "山西省临汾地区洪洞县",
	"142627" : "山西省临汾地区古县",
	"142628" : "山西省临汾地区安泽县",
	"142629" : "山西省临汾地区浮山县",
	"142630" : "山西省临汾地区吉县",
	"142631" : "山西省临汾地区乡宁县",
	"142632" : "山西省临汾地区蒲县",
	"142633" : "山西省临汾地区大宁县",
	"142634" : "山西省临汾地区永和县",
	"142635" : "山西省临汾地区隰县",
	"142636" : "山西省临汾地区汾西县",
	"142700" : "山西省运城地区",
	"142701" : "山西省运城地区运城市",
	"142702" : "山西省运城地区永济市",
	"142703" : "山西省运城地区河津市",
	"142723" : "山西省运城地区芮城县",
	"142724" : "山西省运城地区临猗县",
	"142725" : "山西省运城地区万荣县",
	"142726" : "山西省运城地区新绛县",
	"142727" : "山西省运城地区稷山县",
	"142729" : "山西省运城地区闻喜县",
	"142730" : "山西省运城地区夏县",
	"142731" : "山西省运城地区绛县",
	"142732" : "山西省运城地区平陆县",
	"142733" : "山西省运城地区垣曲县",
	"150000" : "内蒙古自治区",
	"150100" : "内蒙古自治区呼和浩特市",
	"150101" : "内蒙古自治区呼和浩特市市辖区",
	"150102" : "内蒙古自治区呼和浩特市新城区",
	"150103" : "内蒙古自治区呼和浩特市回民区",
	"150104" : "内蒙古自治区呼和浩特市玉泉区",
	"150105" : "内蒙古自治区呼和浩特市郊区",
	"150121" : "内蒙古自治区呼和浩特市土默特左旗",
	"150122" : "内蒙古自治区呼和浩特市托克托县",
	"150123" : "内蒙古自治区呼和浩特市和林格尔县",
	"150124" : "内蒙古自治区呼和浩特市清水河县",
	"150125" : "内蒙古自治区呼和浩特市武川县",
	"150200" : "内蒙古自治区包头市",
	"150201" : "内蒙古自治区包头市市辖区",
	"150202" : "内蒙古自治区包头市东河区",
	"150203" : "内蒙古自治区包头市昆都伦区",
	"150204" : "内蒙古自治区包头市青山区",
	"150205" : "内蒙古自治区包头市石拐矿区",
	"150206" : "内蒙古自治区包头市白云矿区",
	"150207" : "内蒙古自治区包头市郊区",
	"150221" : "内蒙古自治区包头市土默特右旗",
	"150222" : "内蒙古自治区包头市固阳县",
	"150223" : "内蒙古自治区包头市达尔罕茂明安联合旗",
	"150300" : "内蒙古自治区乌海市",
	"150301" : "内蒙古自治区乌海市市辖区",
	"150302" : "内蒙古自治区乌海市海勃湾区",
	"150303" : "内蒙古自治区乌海市海南区",
	"150304" : "内蒙古自治区乌海市乌达区",
	"150400" : "内蒙古自治区赤峰市",
	"150401" : "内蒙古自治区赤峰市市辖区",
	"150402" : "内蒙古自治区赤峰市红山区",
	"150403" : "内蒙古自治区赤峰市元宝山区",
	"150404" : "内蒙古自治区赤峰市松山区",
	"150421" : "内蒙古自治区赤峰市阿鲁科尔沁旗",
	"150422" : "内蒙古自治区赤峰市巴林左旗",
	"150423" : "内蒙古自治区赤峰市巴林右旗",
	"150424" : "内蒙古自治区赤峰市林西县",
	"150425" : "内蒙古自治区赤峰市克什克腾旗",
	"150426" : "内蒙古自治区赤峰市翁牛特旗",
	"150428" : "内蒙古自治区赤峰市喀喇沁旗",
	"150429" : "内蒙古自治区赤峰市宁城县",
	"150430" : "内蒙古自治区赤峰市敖汉旗",
	"152100" : "内蒙古自治区呼伦贝尔盟",
	"152101" : "内蒙古自治区呼伦贝尔盟海拉尔市",
	"152102" : "内蒙古自治区呼伦贝尔盟满洲里市",
	"152103" : "内蒙古自治区呼伦贝尔盟扎兰屯市",
	"152104" : "内蒙古自治区呼伦贝尔盟牙克石市",
	"152105" : "内蒙古自治区呼伦贝尔盟根河市",
	"152106" : "内蒙古自治区呼伦贝尔盟额尔古纳市",
	"152122" : "内蒙古自治区呼伦贝尔盟阿荣旗",
	"152123" : "内蒙古自治区呼伦贝尔盟莫力达瓦达斡尔族自治旗",
	"152127" : "内蒙古自治区呼伦贝尔盟鄂伦春自治旗",
	"152128" : "内蒙古自治区呼伦贝尔盟鄂温克族自治旗",
	"152129" : "内蒙古自治区呼伦贝尔盟新巴尔虎右旗",
	"152130" : "内蒙古自治区呼伦贝尔盟新巴尔虎左旗",
	"152131" : "内蒙古自治区呼伦贝尔盟陈巴尔虎旗",
	"152200" : "内蒙古自治区兴安盟",
	"152201" : "内蒙古自治区兴安盟乌兰浩特市",
	"152202" : "内蒙古自治区兴安盟阿尔山市",
	"152221" : "内蒙古自治区兴安盟科尔沁右翼前旗",
	"152222" : "内蒙古自治区兴安盟科尔沁右翼中旗",
	"152223" : "内蒙古自治区兴安盟扎赉特旗",
	"152224" : "内蒙古自治区兴安盟突泉县",
	"152300" : "内蒙古自治区哲里木盟",
	"152301" : "内蒙古自治区哲里木盟通辽市",
	"152302" : "内蒙古自治区哲里木盟霍林郭勒市",
	"152322" : "内蒙古自治区哲里木盟科尔沁左翼中旗",
	"152323" : "内蒙古自治区哲里木盟科尔沁左翼后旗",
	"152324" : "内蒙古自治区哲里木盟开鲁县",
	"152325" : "内蒙古自治区哲里木盟库伦旗",
	"152326" : "内蒙古自治区哲里木盟奈曼旗",
	"152327" : "内蒙古自治区哲里木盟扎鲁特旗",
	"152500" : "内蒙古自治区锡林郭勒盟",
	"152501" : "内蒙古自治区锡林郭勒盟二连浩特市",
	"152502" : "内蒙古自治区锡林郭勒盟锡林浩特市",
	"152522" : "内蒙古自治区锡林郭勒盟阿巴嘎旗",
	"152523" : "内蒙古自治区锡林郭勒盟苏尼特左旗",
	"152524" : "内蒙古自治区锡林郭勒盟苏尼特右旗",
	"152525" : "内蒙古自治区锡林郭勒盟东乌珠穆沁旗",
	"152526" : "内蒙古自治区锡林郭勒盟西乌珠穆沁旗",
	"152527" : "内蒙古自治区锡林郭勒盟太仆寺旗",
	"152528" : "内蒙古自治区锡林郭勒盟镶黄旗",
	"152529" : "内蒙古自治区锡林郭勒盟正镶白旗",
	"152530" : "内蒙古自治区锡林郭勒盟正蓝旗",
	"152531" : "内蒙古自治区锡林郭勒盟多伦县",
	"152600" : "内蒙古自治区乌兰察布盟",
	"152601" : "内蒙古自治区乌兰察布盟集宁市",
	"152602" : "内蒙古自治区乌兰察布盟丰镇市",
	"152624" : "内蒙古自治区乌兰察布盟卓资县",
	"152625" : "内蒙古自治区乌兰察布盟化德县",
	"152626" : "内蒙古自治区乌兰察布盟商都县",
	"152627" : "内蒙古自治区乌兰察布盟兴和县",
	"152629" : "内蒙古自治区乌兰察布盟凉城县",
	"152630" : "内蒙古自治区乌兰察布盟察哈尔右翼前旗",
	"152631" : "内蒙古自治区乌兰察布盟察哈尔右翼中旗",
	"152632" : "内蒙古自治区乌兰察布盟察哈尔右翼后旗",
	"152634" : "内蒙古自治区乌兰察布盟四子王旗",
	"152700" : "内蒙古自治区伊克昭盟",
	"152701" : "内蒙古自治区伊克昭盟东胜市",
	"152722" : "内蒙古自治区伊克昭盟达拉特旗",
	"152723" : "内蒙古自治区伊克昭盟准格尔旗",
	"152724" : "内蒙古自治区伊克昭盟鄂托克前旗",
	"152725" : "内蒙古自治区伊克昭盟鄂托克旗",
	"152726" : "内蒙古自治区伊克昭盟杭锦旗",
	"152727" : "内蒙古自治区伊克昭盟乌审旗",
	"152728" : "内蒙古自治区伊克昭盟伊金霍洛旗",
	"152800" : "内蒙古自治区巴彦淖尔盟",
	"152801" : "内蒙古自治区巴彦淖尔盟临河市",
	"152822" : "内蒙古自治区巴彦淖尔盟五原县",
	"152823" : "内蒙古自治区巴彦淖尔盟磴口县",
	"152824" : "内蒙古自治区巴彦淖尔盟乌拉特前旗",
	"152825" : "内蒙古自治区巴彦淖尔盟乌拉特中旗",
	"152826" : "内蒙古自治区巴彦淖尔盟乌拉特后旗",
	"152827" : "内蒙古自治区巴彦淖尔盟杭锦后旗",
	"152900" : "内蒙古自治区阿拉善盟",
	"152921" : "内蒙古自治区阿拉善盟阿拉善左旗",
	"152922" : "内蒙古自治区阿拉善盟阿拉善右旗",
	"152923" : "内蒙古自治区阿拉善盟额济纳旗",
	"210000" : "辽宁省",
	"210100" : "辽宁省沈阳市",
	"210101" : "辽宁省沈阳市市辖区",
	"210102" : "辽宁省沈阳市和平区",
	"210103" : "辽宁省沈阳市沈河区",
	"210104" : "辽宁省沈阳市大东区",
	"210105" : "辽宁省沈阳市皇姑区",
	"210106" : "辽宁省沈阳市铁西区",
	"210111" : "辽宁省沈阳市苏家屯区",
	"210112" : "辽宁省沈阳市东陵区",
	"210113" : "辽宁省沈阳市新城子区",
	"210114" : "辽宁省沈阳市于洪区",
	"210122" : "辽宁省沈阳市辽中县",
	"210123" : "辽宁省沈阳市康平县",
	"210124" : "辽宁省沈阳市法库县",
	"210181" : "辽宁省沈阳市新民市",
	"210200" : "辽宁省大连市",
	"210201" : "辽宁省大连市市辖区",
	"210202" : "辽宁省大连市中山区",
	"210203" : "辽宁省大连市西岗区",
	"210204" : "辽宁省大连市沙河口区",
	"210211" : "辽宁省大连市甘井子区",
	"210212" : "辽宁省大连市旅顺口区",
	"210213" : "辽宁省大连市金州区",
	"210224" : "辽宁省大连市长海县",
	"210281" : "辽宁省大连市瓦房店市",
	"210282" : "辽宁省大连市普兰店市",
	"210283" : "辽宁省大连市庄河市",
	"210300" : "辽宁省鞍山市",
	"210301" : "辽宁省鞍山市市辖区",
	"210302" : "辽宁省鞍山市铁东区",
	"210303" : "辽宁省鞍山市铁西区",
	"210304" : "辽宁省鞍山市立山区",
	"210311" : "辽宁省鞍山市千山区",
	"210321" : "辽宁省鞍山市台安县",
	"210323" : "辽宁省鞍山市岫岩满族自治县",
	"210381" : "辽宁省鞍山市海城市",
	"210400" : "辽宁省抚顺市",
	"210401" : "辽宁省抚顺市市辖区",
	"210402" : "辽宁省抚顺市新抚区",
	"210403" : 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值