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)//反轉義
