18位身份证正则表达式
时间: 2023-09-05 09:14:59 浏览: 183
18位身份证的正则表达式为:
^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$
其中,前六位是地区码,非0开头;接下来是出生年份,范围为1800-3999年;然后是月份,范围为01-12;紧接着是日期,范围为01-31;之后是三位顺序码;最后一位是校验码,可以是数字0-9或字母Xx。<span class="em">1</span>
#### 引用[.reference_title]
- *1* [身份证正则表达式](https://blog.csdn.net/qq_17032077/article/details/123919813)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
相关问题
vue2.6验证18位身份证正则表达式
以下是Vue 2.6中验证18位身份证号码的正则表达式:
```javascript
/^[1-9]\d{5}(19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
```
该正则表达式的含义是:
- `^[1-9]\d{5}`:以非零开头的6位数字开头;
- `(19|20)\d{2}`:表示19或20开头的4位数字;
- `((0[1-9])|(1[0-2]))`:表示月份,01-12;
- `(([0-2][1-9])|10|20|30|31)`:表示日期,01-31;
- `\d{3}`:表示3位数字,通常是区域代码;
- `[0-9Xx]$`:表示最后一位可以是数字或者大写字母X。
以下是Vue 2.6中使用该正则表达式验证身份证号码的方法:
```javascript
// 定义验证方法
const validateIdCard = (rule, value, callback) => {
const reg = /^[1-9]\d{5}(19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
if (!reg.test(value)) {
callback(new Error('请输入正确的身份证号码'))
} else {
callback()
}
}
// 在Vue组件中使用
export default {
data() {
return {
idCard: ''
}
},
methods: {
submitForm() {
this.$refs.form.validate(valid => {
if (valid) {
// 验证通过
} else {
// 验证失败
}
})
}
},
mounted() {
// 添加验证规则
this.$refs.form.validateField('idCard')
},
validations: {
idCard: {
required,
validateIdCard
}
}
}
```
Java十八位身份证正则表达式
Java的十八位身份证正则表达式如下:
"^[1-9]\\d{5}(18|19|([23]\\d))\\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$"
其中,前六位为地址码,第七到第十位为出生年份,第十一到第十二位为出生月份,第十三到第十四位为出生日期,第十五到十七位为顺序码,最后一位为校验码。其中,顺序码为奇数表示男性,偶数表示女性。校验码的计算方法可以参考引用中的Java算法。
阅读全文