手机号正则校验

一、字符串是否为合法的手机号码

 /**
     * 利用正则表达式检查字符串是否为合法的手机号码
     * @param phone
     * @return
     */
    public static String isPhone(String phone) {
        // 开头的"1"代表第一位为数字1,"[3-9]"代表第二位可以为3、4、5、6、7、8、9其中之一,"\\d{9}"代表后面是9位数字
        String regex = "1[3-9]\\d{9}";
        // 字符串变量的matches方法返回正则表达式对该串的检验结果,true表示符合字符串规则,false表示不符合规则
        if(phone.matches(regex)){
            return "手机号正确";
        }else{
            return "手机号错误";
        }
    }

二、数组内容是否为合法的手机号码

/**
     * 利用正则表达式检查数组内容是否为合法的手机号码
     * @param phone
     * @return
     */
    public static String[] isPhones(String[] phone) {
        ArrayList<String> errorPhone = new ArrayList<String>();
        // 开头的"1"代表第一位为数字1,"[3-9]"代表第二位可以为3、4、5、6、7、8、9其中之一,"\\d{9}"代表后面是9位数字
        String regex = "1[3-9]\\d{9}";
        for (int i = 0; i < phone.length; i++) {
            // 字符串变量的matches方法返回正则表达式对该串的检验结果,true表示符合字符串规则,false表示不符合规则 index为标记
            int index = 0;
            if(!phone[i].matches(regex)){
                errorPhone.add(phone[i]);
            }
        }
        //类型转换ArrayList-》String数组后返回
        return errorPhone.toArray(new String[errorPhone.size()]);
    }

三、字符串内容是否为合法的固话号码

/**
     * 利用正则表达式检查字符串是否为合法的固话号码
     * @param fixed_phone
     * @return
     */
    public static String isFixedPhone(String fixed_phone) {
        //校验规则字段
        String regex = null;
        //不带区号固话位数
        int number = 9;
        if(fixed_phone.length() > number ){
            //带区号校验规则
            regex = "^[0][1-9]{2,3}-[0-9]{5,10}$";
        }else{
            //不带区号校验规则
            regex = "^[1-9]{1}[0-9]{5,8}$";
        }
        // 字符串变量的matches方法返回正则表达式对该串的检验结果,true表示符合字符串规则,false表示不符合规则
        if(fixed_phone.matches(regex)){
            return "固话格式正确";
        }else{
            return "固话格式错误";
        }
    }

四、方法调用

import java.util.ArrayList;
import java.util.Arrays;

public class PhoneVerification {
public static void main(String[] args) {
        //字符串校验
        String phone1 = "15548653698";
        //返回结果
        String result1 = PhoneVerification.isPhone(phone1);
        System.out.println(phone1+result1);

        //字符串校验
        String phone2 = "11111111111";
        //返回结果
        String result2 = PhoneVerification.isPhone(phone2);
        System.out.println(phone2+result2);

        //数组校验
        String[] phones = {"15548653698","111111111","2222222222","13888455698"};
        //返回数组
        String[] results = PhoneVerification.isPhones(phones);
        System.out.println("无效手机号:"+ Arrays.toString(results));

        //固话校验
        String phone3 = "0848-6208815";
        //返回结果
        String result3 = PhoneVerification.isFixedPhone(phone3);
        System.out.println(phone3+result3);
    }
}

五、控制台输出

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容