身份证正则判断
身份證正則判斷
今天分享的是身份證的正則判斷,在很多時(shí)候需要到,所以在這里記錄下來(lái)。之前做正則判斷的時(shí)候,有一些小瑕疵,判斷不夠全面,正則判斷,結(jié)構(gòu)緊湊,全面的判斷很重要,所以也是詢(xún)問(wèn)老師得到的一張方法。
首先,把頁(yè)面構(gòu)造好:
接下來(lái)是對(duì)獲取的身份證進(jìn)行多重判斷:
<script>//1.驗(yàn)證身份證是否有誤var aCity = {11: "北京", 12: "天津", 13: "河北", 14: "山西", 15: "內(nèi)蒙古", 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: "臺(tái)灣", 81: "香港", 82: "澳門(mén)", 91: "國(guó)外"}//2、正則表達(dá)式判斷function isCardID(sId) {var iSum = 0;var info = "";if (!/^\d{17}(\d|x)$/i.test(sId)) return "你輸入的身份證長(zhǎng)度或格式錯(cuò)誤";sId = sId.replace(/x$/i, "a");if (aCity[parseInt(sId.substr(0, 2))] == null) return "你的身份證地區(qū)非法";sBirthday = sId.substr(6, 4) + "-" + Number(sId.substr(10, 2)) + "-" + Number(sId.substr(12, 2));var d = new Date(sBirthday.replace(/-/g, "/"));if (sBirthday != (d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate())) return "身份證上的出生日期非法";for (var i = 17; i >= 0; i--) iSum += (Math.pow(2, i) % 11) * parseInt(sId.charAt(17 - i), 11);if (iSum % 11 != 1) return "你輸入的身份證號(hào)非法";aCity[parseInt]return true;}$("#IdentityCard").change(function () {//獲取身份證var sId = $("#IdentityCard").val();if (isCardID(sId) != true) {layer.alert(isCardID(sId));}});</script>如果隨便輸入身份證號(hào),身份證號(hào)錯(cuò)誤,會(huì)提示你的身份證號(hào)非法:
如果你的身份證出生日期不存在,會(huì)提示出生日期非法:
如果你的身份證長(zhǎng)度不對(duì),(這里判斷的是18位)會(huì)提示你的身份證號(hào)長(zhǎng)度不對(duì):
身份證的正則判斷,就寫(xiě)到這里,還有其他的方法也可以進(jìn)行判斷。具體看個(gè)人的需求,應(yīng)該多借鑒多參考。
總結(jié)
- 上一篇: 命令测试post_【第2088期】前端中
- 下一篇: 简单的cpu飙升排查方法