protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name=request.getParameter("name"); //获取从web客户端到web服务端get,post方式传入的数据, String password=request.getParameter("password"); String phone=request.getParameter("phone"); String mail=request.getParameter("mail"); String[] value=request.getParameterValues("love"); for(int i=0;i<value.length;i++){ System.out.println("第"+i+"个:"+value[i]); } String msg="注册成功"; if(argax("(^[A-Za-z0-9]{6,16}$)|(^[\u4E00-\u9FA5]{2,8}$)",name)){ msg="用户名不能为空且必须不少于6位"; getResult(msg,request,response); return; } if(argax("^[a-zA-Z]\\w{5,17}$",password)){ msg="密码不能为空且不能少于5位"; getResult(msg,request,response); return; }if(argax("^(13[0-9]{9})|(15[89][0-9]{8})$",phone)){ msg="手机号输入有误"; getResult(msg,request,response); return; }if(argax("^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$",mail)){ msg="邮箱格式不正确"; getResult(msg,request,response); return; } getResult(msg,request,response); } private void getResult(String msg,HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{ request.setAttribute("msg", msg); //处理web内数据 RequestDispatcher requestdispatcher=request.getRequestDispatcher("/index2.jsp"); //页面跳转 requestdispatcher.forward(request, response); //请求并响应 } public boolean argax(String compile,String body){ Pattern pattern = Pattern.compile(compile); Matcher matcher = pattern.matcher(body); boolean b= matcher.matches(); return b; }
这里验证用户的正则输入一直出问题,是我正则没写对么?
你得先说出你输入的是什么
输入正则要求的用户名,但是他直接就提示输入的不正确,不晓得这是为什么,测试过输入的用户在 在线测试正则 上可以用,但是一放到一起现在就提示输入不正确
@略知闻风雨: 调试一下,看看是不是这儿报的嘛
@jello chen: 哪儿啊哥哥
@略知闻风雨: 搞定了
public boolean argax(String compile,String body){ Pattern pattern = Pattern.compile(compile); Matcher matcher = pattern.matcher(body); boolean b= matcher.matches(); return b; }
返回是false;
if(argax("(^[A-Za-z0-9]{6,16}$)|(^[\u4E00-\u9FA5]{2,8}$)",name)){ msg="用户名不能为空且必须不少于6位"; getResult(msg,request,response); return;
这样的话得加!号 非 一下
这样子就调整好了