Commit c82fee50 authored by 谢希宇's avatar 谢希宇

Submit by Strive

Date 2021/03/21
替换身份证验证方式
parent 2215e2d5
...@@ -194,49 +194,16 @@ ...@@ -194,49 +194,16 @@
submitHandler: function (form) { submitHandler: function (form) {
var card = $("#idCard").val(); var card = $("#idCard").val();
var reg = /(^\d{15}$)|(^\d{17}(\d|X)$)/; let result = IdCodeValid(card);
if(reg.test(card) == false){ if (!result) {
Cfapp.alert({ Cfapp.alert({
message: "请输入正确格式的身份证号码", message: "身份证格式错误",
btntext: "确定", btntext: "确定",
success: function () { success: function () {}
}
});
}else{
//身份证正则表达式(18位)
var isIdCard2 = /^[1-9]\d{5}(19\d{2}|[2-9]\d{3})((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])(\d{4}|\d{3}X)$/i;
var stard = "10X98765432"; //最后一位身份证的号码
var first = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; //1-17系数
var sum = 0;
if (!isIdCard2.test(card)) {
Cfapp.alert({
message: "请输入正确格式的身份证号码",
btntext: "确定",
success: function () {
}
}); });
return; return;
} }
var year = card.substr(6, 4);
var month = card.substr(10, 2);
var day = card.substr(12, 2);
var birthday = card.substr(6, 8);
if (birthday != dateToString(new Date(year + '/' + month + '/' + day))) { //校验日期是否合法
Cfapp.alert({
message: "请输入正确格式的身份证号码",
btntext: "确定",
success: function () {
}
});
return;
}
for (var i = 0; i < card.length - 1; i++) {
sum += card[i] * first[i];
}
var result = sum % 11;
var last = stard[result]; //计算出来的最后一位身份证号码
if (card[card.length - 1].toUpperCase() == last) {
//保存 //保存
$("#save").attr("disabled", true); $("#save").attr("disabled", true);
$.getJSON("#springUrl('/a/authentication/formData')", $("#myForm").serialize(), function (returnobj) { $.getJSON("#springUrl('/a/authentication/formData')", $("#myForm").serialize(), function (returnobj) {
...@@ -271,17 +238,7 @@ ...@@ -271,17 +238,7 @@
}); });
} }
}); });
} else {
Cfapp.alert({
message: "请输入正确格式的身份证号码",
btntext: "确定",
success: function () {
}
});
return;
}
}
} }
...@@ -298,6 +255,47 @@ ...@@ -298,6 +255,47 @@
}; };
}(); }();
function IdCodeValid(code) {
//身份证号合法性验证
//支持15位和18位身份证号
//支持地址编码、出生日期、校验位验证
var city={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江 ",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北 ",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏 ",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外 "};
var row = true;
var msg = "验证成功";
if(!code || !/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|[xX])$/.test(code)){
row=false,
msg = "被保人身份证号格式错误";
}else if(!city[code.substr(0,2)]){
row=false,
msg = "被保人身份证号地址编码错误";
}else{
//18位身份证需要验证最后一位校验位
if(code.length == 18){
code = code.split('');
//∑(ai×Wi)(mod 11)
//加权因子
var factor = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ];
//校验位
var parity = [ 1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2 ];
var sum = 0;
var ai = 0;
var wi = 0;
for (var i = 0; i < 17; i++)
{
ai = code[i];
wi = factor[i];
sum += ai * wi;
}
if(parity[sum % 11] != code[17].toUpperCase()){
row=false,
msg = "被保人身份证号校验位错误";
}
}
}
return row;
}
</script> </script>
</body> </body>
<!-- END BODY --> <!-- END BODY -->
......
...@@ -91,8 +91,8 @@ ...@@ -91,8 +91,8 @@
<div class="col-xs-2"> <div class="col-xs-2">
<select id="status" name="status" class="form-control pull-right"> <select id="status" name="status" class="form-control pull-right">
<option value="" >请选择状态</option> <option value="" >请选择状态</option>
<option value="0"></option> <option value="0">已失效</option>
<option value="1"></option> <option value="1">已激活</option>
</select> </select>
</div> </div>
......
...@@ -79,7 +79,7 @@ ...@@ -79,7 +79,7 @@
<sql id="sqlColumnslist"> <sql id="sqlColumnslist">
id, id,
number, number,
CONVERT(AES_DECRYPT(name,'aideakey') USING UTF8) name , CONVERT(AES_DECRYPT(name,'aideakey') USING UTF8) name,
CONVERT(AES_DECRYPT(phone,'aideakey') USING UTF8) phone, CONVERT(AES_DECRYPT(phone,'aideakey') USING UTF8) phone,
imageurl, imageurl,
cardid, cardid,
......
...@@ -90,7 +90,7 @@ ...@@ -90,7 +90,7 @@
<!-- 插入用户服务号 --> <!-- 插入用户服务号 -->
<insert id="insert" useGeneratedKeys="true" keyProperty="id" parameterType="com.cftech.mp.fans.model.MpFanssEntity"> <insert id="insert" useGeneratedKeys="true" keyProperty="id" parameterType="com.cftech.mp.fans.model.MpFanssEntity">
insert into wx_mp_fanss ( openid, nickname, insert into wx_mp_fanss (openid, nickname,
sex,city,province,country,delflag,headimgurl, sex,city,province,country,delflag,headimgurl,
subscribetime,createtime,timestamp,updatetime,mpaccountid,userid,taglist,status,recommender,store,source,description,unionid) subscribetime,createtime,timestamp,updatetime,mpaccountid,userid,taglist,status,recommender,store,source,description,unionid)
values (#{openid,jdbcType=VARCHAR}, values (#{openid,jdbcType=VARCHAR},
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment