4. 判断身份证号码是否合法
时间: 2023-11-18 17:45:33 浏览: 209
身份证号码是由18位数字和一个校验码组成的,其中前17位数字有固定含义,最后一位是校验码,用于检验前17位数字的正确性。判断身份证号码是否合法,需要验证以下几点:
1. 长度是否为18位
2. 前17位是否都是数字
3. 出生年月日是否合法
4. 校验码是否正确
如果以上所有条件都满足,则认为该身份证号码是合法的。
相关问题
使用数组、表单、字符串处理函数等实现功能: 1.输入身份证号码并获取身份证号码 2.判断身份证是否合法 2.1判断身份证位数是否是18位或是15位,否则不是合法身份证,重新输入 2.2判断身份证出身年月日是否合法 2.3判断省份位是否合法 3.获得身份证所属省份,出生年月日和性别信息。
1. 实现输入身份证号码并获取身份证号码:
```html
<form>
<input type="text" id="id_num" name="id_num" placeholder="请输入身份证号码">
<button type="button" onclick="getID()">获取身份证号码</button>
</form>
<script>
function getID() {
var id_num = document.getElementById("id_num").value;
alert("身份证号码:" + id_num);
}
</script>
```
2. 实现判断身份证是否合法:
```html
<form>
<input type="text" id="id_num" name="id_num" placeholder="请输入身份证号码">
<button type="button" onclick="checkID()">检验身份证合法性</button>
</form>
<script>
function checkID() {
var id_num = document.getElementById("id_num").value;
var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
if (reg.test(id_num) === false) {
alert("身份证格式不合法,请重新输入");
return false;
}
alert("身份证格式合法");
return true;
}
</script>
```
3. 实现获得身份证所属省份、出生年月日和性别信息:
```html
<form>
<input type="text" id="id_num" name="id_num" placeholder="请输入身份证号码">
<button type="button" onclick="getID()">获取身份证信息</button>
</form>
<script>
function getID() {
var id_num = document.getElementById("id_num").value;
var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
if (reg.test(id_num) === false) {
alert("身份证格式不合法,请重新输入");
return false;
}
var province = {
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: "澳门特别行政区"
};
var year = "";
var month = "";
var day = "";
var sex = "";
if (id_num.length === 18) {
year = id_num.substr(6, 4);
month = id_num.substr(10, 2);
day = id_num.substr(12, 2);
sex = id_num.substr(14, 3) % 2 === 0 ? "女" : "男";
} else {
year = "19" + id_num.substr(6, 2);
month = id_num.substr(8, 2);
day = id_num.substr(10, 2);
sex = id_num.substr(12, 3) % 2 === 0 ? "女" : "男";
}
var province_code = id_num.substr(0, 2);
var province_name = province[province_code];
var message = "省份:" + province_name + "\n出生年月日:" + year + "年" + month + "月" + day + "日\n性别:" + sex;
alert(message);
return true;
}
</script>
```
JAVA程序,判断身份证号码是否合法
在Java程序中,判断身份证号码是否合法通常涉及到验证号码的结构、长度以及校验码的计算。以下是一个基本的步骤:
1. **数据结构**:身份证号码由18位数字组成,分为三段:前六位代表地区编码,接下来八位代表出生年月日,最后四位是顺序码和校验码。
2. **长度检查**:首先,检查总长度是否为18位。可以使用`String.length()`方法。
```java
if (idCardNumber.length() != 18) {
System.out.println("身份证号码长度错误");
}
```
3. **区域码检查**:前六位应符合特定地区编码范围,这部分可以根据实际需要查找对应区县代码对照表进行校验。
4. **校验码计算**:对于最后两位,通常使用刘辉算法(也称作中国国家标准GB11643-1999标准),包括奇偶校验和X校验。
5. **校验码验证**:根据计算出的校验码与原始身份证号的最后一位对比,看是否一致。
```java
// 校验码计算部分略...
boolean isValidChecksum = calculatedChecksum == idCardNumber.charAt(17); // 对于中国的身份证,最后一字符可能是数字或X
if (!isValidChecksum) {
System.out.println("校验码错误");
}
```
6. **完整实现**:将上述步骤组合在一起,形成完整的验证函数。
请注意,这只是一个基础的检验,实际应用中可能还需要考虑异常处理和其他复杂情况,例如对特殊地区的特殊规则等。如果你需要的是一个完整的示例,我会提供一个简单的版本,但完整的验证逻辑会根据实际需求而有所不同。
阅读全文