正则表达式匹配敏感信息

身份证号、手机号和银行卡号,因为这几个数字的长度不同,可能存在嵌套现象。
以下正则表达式可以避免出现这种情况。

手机号

((?<=[^\d])|^)(\+?86)?1([38]\d{
    
    1}|4[579]|5([0-3]|[5-9])|66|7([1-3]|[5-8])|9[189])\d{
    
    8}((?=[^\d])|$)

身份证号

((?<=[^\d])|^)((1[1-5])|(2[1-3])|(3[1-7])|(4[1-6])|(5[0-4])|(6[1-5])|(71)|(8[1-2]))\d{
    
    4}(19|20)\d{
    
    2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{
    
    3}[0-9Xx]((?=[^\d])|$)

银行卡号

((?<=[^\d])|^)([1-9]{
    
    1})(\d{
    
    15,16}|\d{
    
    18})((?=[^\d]xX)|$)

猜你喜欢

转载自blog.csdn.net/xfp1007907124/article/details/126990955
今日推荐