前端实名认证
身份證驗證
本周項目要接入實名認證
任務要求
1.姓名必須是中文.
2.身份證符合發布規則.
3.年齡必須大于18周歲,精確到天
4.暫不接入姓名和身份證的官方校驗
需要用到網站
1.身份證生成,以便測試
2.github 的身份證相關參考
3.通過搜索引擎各種查看
學習到的知識.整數型字符串竟然可以對比
var a = "2014-08-08"; var b = "2014-09-09"; console.log(a>b, a<b); // false true流程->
輸入數據->正則進行判斷是否符合身份證的規則//阿里云購買校驗服務即可 let pattern=/[^\u4e00-\u9fa5]/; //名稱只能中文化以下代碼來自互聯網
/身份證規則校驗 var checkID = function (val) {if(checkCode(val)) {var date = val.substring(6,14);if(checkDate(date)) {if(checkProv(val.substring(0,2))) {return false;}}}return true; }//省級地址碼校驗 var checkProv = function (val) {var pattern = /^[1-9][0-9]/;var provs = {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:"澳門"};if(pattern.test(val)) {if(provs[val]) {return true;}}return false; } //出生日期碼校驗 var checkDate = function (val) {var pattern = /^(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)$/;if(pattern.test(val)) {var year = val.substring(0, 4);var month = val.substring(4, 6);var date = val.substring(6, 8);var date2 = new Date(year+"-"+month+"-"+date);if(date2 && date2.getMonth() == (parseInt(month) - 1)) {return true;}}return false; } //校驗碼校驗 var checkCode = function (val) {var p = /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;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 code = val.substring(17);if(p.test(val)) {var sum = 0;for(var i=0;i<17;i++) {sum += val[i]*factor[i];}if(parity[sum % 11] == code.toUpperCase()) {return true;}}return false; }let cheakAge = function(val){let nowTime = new Date();let nowMonth= "" + (nowTime.getMonth() + 1);let nowDay = "" + nowTime.getDate();nowMonth = nowMonth.length == 1?("0" + nowMonth) : nowMonthnowDay = nowDay.length == 1?("0" + nowDay) : nowDaylet ymd = val.substring(6,14);let growTime = parseInt(ymd) + 180000; //補充18年let nowYmd = `${nowTime.getFullYear()}${nowMonth}${nowDay}` ;return parseInt(nowYmd) < growTime }總結
- 上一篇: 存档:全球各国名称中英文对照表
- 下一篇: 宁海中考政策计算机考试合格,宁海中考指南