Java使用正則表達式驗證常用字符串

最近在項目中遇到比較多需要校驗的字符串,由於以前沒怎麼用過,導致使用不太熟練。在這裏將常用的正則表達式總結一下,方便日後使用,也供大家參考。

public class TestReg {

    public static void main(String[] args) {
        while(true) {
            Scanner scanner = new Scanner(System.in);
            String str = scanner.nextLine();
            if("exit".equals(str)) {
                break;
            }
            // validateUrl()爲需要測試的函數,可替換
            System.out.println(validateUrl(str));
        }
    }

    // 驗證是否爲全爲數字
    public static boolean validateDigit(String str){
         Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$"); 
         Matcher matcher = pattern.matcher(str);
         return matcher.matches();
    }

    // 驗證是否全爲字母,不含特殊字符
    public static boolean validateCharacters(String str){
         Pattern pattern = Pattern.compile("^[a-zA-Z]*$"); 
         Matcher matcher = pattern.matcher(str);
         return matcher.matches();
    }

    // 驗證是否爲自然數
    public static boolean validateNatural(String str){
         Pattern pattern = Pattern.compile("^[+]?[\\d]*$"); 
         Matcher matcher = pattern.matcher(str);
         return matcher.matches();
    }

    // 驗證是否爲正整數
    public static boolean validatePlus(String str){
         Pattern pattern = Pattern.compile("^[+]?[1-9]*$"); 
         Matcher matcher = pattern.matcher(str);
         return matcher.matches();
    }

    // 驗證郵箱
    public static boolean validateEmail(String str){
         Pattern pattern = Pattern.compile("^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$"); 
         Matcher matcher = pattern.matcher(str);
         return matcher.matches();
    }

    // 驗證手機號碼
    public static boolean validatePhoneNum(String str){
         Pattern pattern = Pattern.compile("^1[3|4|5|7|8]\\d{9}$"); 
         Matcher matcher = pattern.matcher(str);
         return matcher.matches();
    }

    // 驗證座機號碼
    public static boolean validateFixPhone(String str){
         Pattern pattern = Pattern.compile("^(0[0-9]{2,3}\\-)?([2-9][0-9]{6,7})$"); 
         Matcher matcher = pattern.matcher(str);
         return matcher.matches();
    }

    // 驗證網址
    public static boolean validateUrl(String str){
         Pattern pattern = Pattern.compile("^((ht|f)tps?):\\/\\/[\\w\\-]+(\\.[\\w\\-]+)+([\\w\\-\\.,@?^=%&:\\/~\\+#]*[\\w\\-\\@?^=%&\\/~\\+#])?$"); 
         Matcher matcher = pattern.matcher(str);
         return matcher.matches();
    }

}

如果發現有不對的地方,還望各位大神指正,不勝感激。

發佈了95 篇原創文章 · 獲贊 99 · 訪問量 41萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章