<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <style> * { margin: 0; padding: 0; } input { width: 200px; height: 50px; line-height: 50px; padding: 10px; font-size: 20px; } button { width: 80px; height: 50px; line-height: 50px; font-size: 20px; } #info { margin-top: 15px; width: 220px; height: 50px; line-height: 50px; font-size: 20px; text-align: center; color: #00b38a; border: 1px solid darkmagenta; } .container { margin: 30px auto; width: 400px; } </style></head><body><div class="container"> <div> <input type="text" id="input" placeholder="请输入身份证号"> <button id="btn">查询</button> </div> <div id="info">请输入身份证号</div></div><script> // 根据身份证号,展示这个身份证号籍贯(省+市) let provinceDatabase = { '13': { title: '河北省', cities: { '06': '保定', '02': '唐山', '01': '石家庄', '07': '张家口', '04': '邯郸' } }, '41': { title: '河南省', cities: { '04': '许昌', '27': '周口', '30': '固始' } }, '37': { title: '山东省', cities: { '01': '济南', '02': '青岛', '07': '潍坊', '10': '威海' } }, '36': { title: '江西省', cities: { '01': '南昌', '02': '景德镇' } }, '44': { title: '广东省', cities: { '01': '广州', '02': '韶关' } }, '42': { title: '湖北省', cities: { '01': '武汉', '08': '荆门' } } }; // 获取元素对象 let btn = document.getElementById('btn'); let input = document.getElementById('input'); let info = document.getElementById('info'); // 点击的时候才有触发行为,所以需要绑定点击事件 let reg = /^(\d{2})(\d{2})\d{13}(?:\d|X)$/; // 捕获信息的正则 btn.onclick = function () { // 点击事件触发时,执行这里面的代码 // 1. 要获取 input 中输入的内容:通过 input 元素对象的 value 属性 let val = input.value; // console.log(val); // 2. 要从输入的身份证号中,代表省的两位数字获取到,两位代表地级市的数字获取到(捕获) let result = reg.exec(val); // result 就是捕获到的内容,第二项和第三项是我们需要的省市代码; // console.log(result); let [, provinceCode, cityCode] = result; // 通过解构赋值把省市代码从捕获结果取出 // console.log(provinceCode, cityCode); // 3. 拿到数字,去数据中把数字对应的省市取出来 let target = provinceDatabase[provinceCode]; let province = target.title; // 从数据中把省获取到 let city = target.cities[cityCode]; // 从数据中获取省,再获取市 console.log(province, city); // 4. 把得到的省市汉字插入到页面中 div#info 中 info.innerHTML = `${province} ${city}`; }</script></body></html>