2021-08-La dernière expression régulière pour juger le numéro de téléphone mobile

2023-05-La dernière expression régulière pour juger le numéro de téléphone mobile

Lors de l'utilisation quotidienne de certains logiciels, le numéro de téléphone mobile est utilisé pour l'enregistrement, qui utilise des expressions régulières pour déterminer si le numéro est correct. Dans le développement de projets, j'ai utilisé des expressions régulières pour juger de l'exactitude du numéro de téléphone mobile.

Les plages de numéros de téléphone mobile existantes sont :

 * 三大运营商最新号段 合作版 2023-05
 * 移动号段:
 * 134 135 136 137 138 139 144 147 148 150 151 152 157 158 159 165 172 178 182 183 184 187 188 195 197 198

 * 联通号段:
 * 130 131 132 140 145 146 155 156 166 167 171 175 176 185 186 196

 * 电信号段:
 * 133 141 149 153 162 173 174 177 179 180 181 189 190 191 193 199

 * 虚拟运营商:
 * 162 165 167 170 171

 * 13开头排序:(0-9)(134 135 136 137 138 139 130 131 132 133)
 * 14开头排序:(0-1|4-9)(144 147 148 140 145 146 141 149)
 * 15开头排序:(0-3|5-9)(150 151 152 157 158 159 155 156 153)
 * 16开头排序:(2|5-7)(165 166 167 162)
 * 17开头排序:(1-9)(172 178 171 175 176 173 174 177 179)
 * 18开头排序:(0-9)(182 183 184 187 188 185 186 180 181 189)
 * 19开头排序:(0|1|3|5-9)(195 197 198 196 190 191 193 199)
 * 

( Les données proviennent d'Internet )

Tout d'abord, nous pouvons écrire nos expressions régulières lorsque nous avons les nombres ci-dessus. L'idée est très importante. Jugez d'abord les trois premiers chiffres du numéro de téléphone mobile, puis faites correspondre les 8 derniers chiffres.

^((13[0-9])|(14([0-1]|[4-9]))|(15([0-3]|[5-9]))|(16(2| [5-7]))|(17[1-9])|(18[0-9])|(19[0|1|3])|(19[5-9]))\d{8 }$

Accédez directement au code :

     /**
     * 手机号码校验(三大运营商最新号段 合作版 2023-05)
     * 移动号段:
     * 134 135 136 137 138 139 144 147 148 150 151 152 157 158 159 165 172 178 182 183 184 187 188 195 197 198
     * <p>
     * 联通号段:
     * 130 131 132 140 145 146 155 156 166 167 171 175 176 185 186 196
     * <p>
     * 电信号段:
     * 133 141 149 153 162 173 174 177 179 180 181 189 190 191 193 199
     * <p>
     * 虚拟运营商:
     * 162 165 167 170 171
     * <p>
     * 13开头排序:(0-9)(134 135 136 137 138 139 130 131 132 133)
     * 14开头排序:(0-1|4-9)(144 147 148 140 145 146 141 149)
     * 15开头排序:(0-3|5-9)(150 151 152 157 158 159 155 156 153)
     * 16开头排序:(2|5-7)(165 166 167 162)
     * 17开头排序:(1-9)(172 178 171 175 176 173 174 177 179)
     * 18开头排序:(0-9)(182 183 184 187 188 185 186 180 181 189)
     * 19开头排序:(0|1|3|5-9)(195 197 198 196 190 191 193 199)
     *
     * @param phone 手机号码
     * @return 是否属于三大运营商号段范围
     * @see {https://www.qqzeng.com/article/phone.html}
     */
    public static boolean isPhone(String phone) {
        String regex = "^((13[0-9])|(14([0-1]|[4-9]))|(15([0-3]|[5-9]))|(16(2|[5-7]))|(17[1-9])|(18[0-9])|(19[0|1|3])|(19[5-9]))\d{8}$";
        Pattern p = Pattern.compile(regex);
        return p.matcher(phone).matches();
    }
    

C'est si simple!

Conseils:

Heure de la dernière mise à jour : 2023-05-19 22:37

おすすめ

転載: blog.csdn.net/github_35033182/article/details/110650889