首页 新闻 会员 周边

java 这正则哪里有问题?

0
悬赏园豆:30 [已解决问题] 解决于 2016-03-25 13:50
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;
    }

  

这里验证用户的正则输入一直出问题,是我正则没写对么?

问题补充:

现在的问题是这正则好像完全没效果,页面出来后不输入直接点击确定都可以注册,求解

师太来老道这坐坐的主页 师太来老道这坐坐 | 初学一级 | 园豆:34
提问于:2016-03-25 12:38
< >
分享
最佳答案
0

你得先说出你输入的是什么

收获园豆:30
jello chen | 大侠五级 |园豆:7306 | 2016-03-25 12:58

输入正则要求的用户名,但是他直接就提示输入的不正确,不晓得这是为什么,测试过输入的用户在  在线测试正则   上可以用,但是一放到一起现在就提示输入不正确

师太来老道这坐坐 | 园豆:34 (初学一级) | 2016-03-25 13:13

@略知闻风雨: 调试一下,看看是不是这儿报的嘛

jello chen | 园豆:7306 (大侠五级) | 2016-03-25 13:24

@jello chen: 哪儿啊哥哥

师太来老道这坐坐 | 园豆:34 (初学一级) | 2016-03-25 13:27

@略知闻风雨: 搞定了

 

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;

 

这样的话得加!号  非  一下

师太来老道这坐坐 | 园豆:34 (初学一级) | 2016-03-25 13:50
其他回答(1)
0

这样子就调整好了

师太来老道这坐坐 | 园豆:34 (初学一级) | 2016-03-25 13:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册