身份证正则判断
身份證正則判斷
今天分享的是身份證的正則判斷,在很多時候需要到,所以在這里記錄下來。之前做正則判斷的時候,有一些小瑕疵,判斷不夠全面,正則判斷,結構緊湊,全面的判斷很重要,所以也是詢問老師得到的一張方法。
首先,把頁面構造好:
接下來是對獲取的身份證進行多重判斷:
<script>//1.驗證身份證是否有誤var aCity = {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: "國外"}//2、正則表達式判斷function isCardID(sId) {var iSum = 0;var info = "";if (!/^\d{17}(\d|x)$/i.test(sId)) return "你輸入的身份證長度或格式錯誤";sId = sId.replace(/x$/i, "a");if (aCity[parseInt(sId.substr(0, 2))] == null) return "你的身份證地區非法";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 "你輸入的身份證號非法";aCity[parseInt]return true;}$("#IdentityCard").change(function () {//獲取身份證var sId = $("#IdentityCard").val();if (isCardID(sId) != true) {layer.alert(isCardID(sId));}});</script>如果隨便輸入身份證號,身份證號錯誤,會提示你的身份證號非法:
如果你的身份證出生日期不存在,會提示出生日期非法:
如果你的身份證長度不對,(這里判斷的是18位)會提示你的身份證號長度不對:
身份證的正則判斷,就寫到這里,還有其他的方法也可以進行判斷。具體看個人的需求,應該多借鑒多參考。
總結
- 上一篇: 命令测试post_【第2088期】前端中
- 下一篇: 简单的cpu飙升排查方法