java 正则 常用

2020-06-24  本文已影响0人  微笑中的你

1、判断字符串 是否为纯字母

    /**
     * 判断是否为 纯字母
     * @param str String
     * @return boolean
     */
    public static boolean isLetter(String str) {
        String p = "^[a-zA-Z]*$";
        return str.matches(p);
    }


    //测试
    @Test
    public void testLetter() {

        String str = "abc";
        System.out.println(str +  " 是纯字母:" +  isLetter(str));
        str = "123";
        System.out.println(str +  " 是纯字母:" +  isLetter(str));
        str = "123abc";
        System.out.println(str +  " 是纯字母:" +  isLetter(str));
        
    }

//print
abc 是纯字母:true
123 是纯字母:false
123abc 是纯字母:false


2、判断字符串 是否为纯数字

    /**
     * 判断字符串是否是纯数字
     * @param str String
     * @return boolean
     */
    public static boolean isNumber(String str) {
        String p = "^\\-?[0-9]+$ *";
        return str.matches(p);
    }


    @Test
    public void testNumber() {

        String str = "abc";
        System.out.println(str +  " 是纯数字:" +  isNumber(str));
        str = "123";
        System.out.println(str +  " 是纯数字:" +  isNumber(str));
        str = "123abc";
        System.out.println(str +  " 是纯数字:" +  isNumber(str));

    }

//print
abc 是纯数字:false
123 是纯数字:true
123abc 是纯数字:false


3、判断字符串 是由字母和数字组成

    /**
     * 是字符和数字 6-20位
     * @param str String
     * @return boolean
     */
    public static boolean isLetterWithNumber(String str) {
        String p = "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$";
        return str.matches(p);
    }

    @Test
    public void test3() {

        String str = "abc";
        System.out.println(str +  " 是字母和数字:" +  isLetterWithNumber(str));
        str = "123";
        System.out.println(str +  " 是字母和数字:" +  isLetterWithNumber(str));
        str = "123abc";
        System.out.println(str +  " 是字母和数字:" +  isLetterWithNumber(str));

    }

//print
abc 是字母和数字:false
123 是字母和数字:false
123abc 是字母和数字:true

4、判断字符串 是由字母和数字组成 并且以 字母开头

    /**
     * 是字符和数字 6-20位 并且以字母开头
     * @param str String
     * @return boolean
     */
    public static boolean isLetterStartWithNumber(String str) {
        String p = "^([A-Za-z])(?![a-zA-Z]+$)[0-9A-Za-z]{5,20}$";
        return str.matches(p);
    }

    
    @Test
    public void test4() {

        String str = "abcdefg";
        System.out.println(str +  " 是字母和数字, 字母开头:" +  isLetterStartWithNumber(str));
        str = "123";
        System.out.println(str +  " 是字母和数字, 字母开头:" +  isLetterStartWithNumber(str));
        str = "123abc";
        System.out.println(str +  " 是字母和数字, 字母开头:" +  isLetterStartWithNumber(str));
        str = "a123abc";
        System.out.println(str +  " 是字母和数字, 字母开头:" +  isLetterStartWithNumber(str));
    }

//print
abcdefg 是字母和数字, 字母开头:false
123 是字母和数字, 字母开头:false
123abc 是字母和数字, 字母开头:false
a123abc 是字母和数字, 字母开头:true

5、判断是否为 手机号

    /**
     * 是手机号
     * @param str String
     * @return boolean
     */
    public static boolean isPhoneNumber(String str) {
        String p = "^[1][3-9]\\d{9}$";
        return str.matches(p);
    }

    @Test
    public void test5() {
        String str = "12233334444";
        System.out.println(str +  " 是手机号:" +  isPhoneNumber(str));
        str = "13167890000";
        System.out.println(str +  " 是手机号:" +  isPhoneNumber(str));
        str = "131678900005";
        System.out.println(str +  " 是手机号:" +  isPhoneNumber(str));
        str = "1316789abcd";
        System.out.println(str +  " 是手机号:" +  isPhoneNumber(str));
    }

//print
12233334444 是手机号:false
13167890000 是手机号:true
131678900005 是手机号:false
1316789abcd 是手机号:false
上一篇下一篇

猜你喜欢

热点阅读