java web項目中后台控制層對參數進行自定義驗證 類 Pattern


Pattern pattern = Pattern.compile("/^([1-9]\d+元*|[0]{0,1})$/");//將給定的正則表達式編譯到模式中
  if(!"".equals(mmshop.getOriginalPrice().trim())){          
    if(!pattern.matcher(mmshop.getOriginalPrice().trim()).matches()){ map.put("msg","請輸入數字或xxx元,並確保格式正確"); map.put("code","500"); eturn map;   }   }

1.將給定的正則表達式編譯到模式中

Pattern pattern = Pattern.compile("/^([1-9]\d+元*|[0]{0,1})$/");//將給定的正則表達式編譯到模式中

2.增加去除參數的前后空白條件判斷

if(!"".equals(mmshop.getOriginalPrice().trim())){ 
  .......  
}

3.a.創建匹配給定輸入與此模式的匹配器 b.編譯給定正則表達式並嘗試將給定輸入與其匹配

if(!pattern.matcher(mmshop.getOriginalPrice().trim()).matches()){
   map.put("msg","請輸入數字或xxx元,並確保格式正確");
   map.put("code","500");
   return map;
}

 

4.推薦:快捷方式 編譯給定正則表達式並嘗試將給定輸入與其匹配

/*
參數:
regex - 要編譯的表達式
input - 要匹配的字符序列 
*/
Pattern.compile(regex).matcher(input).matches() 

例如:

     /*
                       說明:編譯給定正則表達式並嘗試將給定輸入與其匹配 對參數進行自定義驗證
                       正則表達式:/^([1-9]\d+元*|[0]{0,1})$/  前兩位必須為正整數后台可以跟也可不跟一個 "元" 字
                     */
//字符串帶元字非負數判斷
int originalPrice= Integer.parseInt(mmshop.getOriginalPrice().trim().replace("元",""));
                    if(originalPrice<0){
                        map.put("msg","請輸入正整數元,並確保格式正確");
                        map.put("code","500");
                        return map;
                    }
                if(!Pattern.compile(StringEscapeUtils.unescapeHtml4("^[-\\+]?[\\d]*$")).matcher(mmshop.getOriginalPrice().trim().replace("元","")).matches()){
                    map.put("msg","請輸入數字或xxx元,並確保格式正確");
                    map.put("code","500");
                    return map;
                }

注意:

 1. "^[-\\+]?[\\d]*$" 判斷是否為整數  包括負數

 2.StringEscapeUtils.unescapeHtml4(xxx)//反轉義


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM