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)//反转义