身份證正則判斷
今天分享的是身份證的正則判斷,在很多時候需要到,所以在這里記錄下來。之前做正則判斷的時候,有一些小瑕疵,判斷不夠全面,正則判斷,結構緊湊,全面的判斷很重要,所以也是詢問老師得到的一張方法。
首先,把頁面構造好:
<div class="form-group" id="ggg"><span class="col-md-2 col-sm-2 control-label reset" style="padding-left:90px;padding-top:68px;">真實姓名:</span><div class="col-md-2 col-sm-2 reset"><input type="text" class="form-control" style="padding-left:90px;margin-top:60px; padding:0;" id="TrueName" name="TrueName"/></div><span class="col-md-2 col-sm-2 control-label reset" style="padding-left:90px;padding-top:68px;">身份證:</span><div class="col-md-3 col-sm-3 reset"><input type="text" class="form-control" style="padding-left:90px;margin-top:60px; padding:0;" id="IdentityCard" name="IdentityCard" /></div><button class="btn btn-primary" style="padding-left:16px;margin-top:60px;" type="button" id="Honest">立即提交</button>
</div>
接下來是對獲取的身份證進行多重判斷:
<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位)會提示你的身份證號長度不對:
身份證的正則判斷,就寫到這里,還有其他的方法也可以進行判斷。具體看個人的需求,應該多借鑒多參考。