正则匹配身份证号脚本
时间: 2023-09-12 08:04:09 浏览: 71
kettle 数据过滤,验证
正则表达式可以用来验证身份证号码的有效性。以下是一个可以匹配15位和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]$
该正则表达式的含义如下:
- ^ 和 $ 表示匹配整个字符串
- [1-9] 表示第一位非零数字
- \d{5} 表示接下来的5位数字
- (18|19|([23]\d)) 表示身份证号码的年份,可以是18、19开头或者20-23开头的两位数字
- \d{2} 表示月份的两位数字
- ((0[1-9])|(10|11|12)) 表示日期的两位数字,可以是01-09或者10-12
- (([0-2][1-9])|10|20|30|31) 表示日期的两位数字,可以是01-29、10、20、30、31
- \d{3} 表示顺序码的三位数字
- [0-9Xx] 表示最后一位是数字或者字母X(x)
如果你需要同时匹配15位和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]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)
该正则表达式是前面提到的18位正则表达式和一个匹配15位身份证号码的正则表达式的组合。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [15/18位身份证号码验证的正则表达式总结(详细版)](https://blog.csdn.net/weixin_39622150/article/details/113460258)[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 ]
阅读全文