发表于: 2021-04-01 23:50:40

1 1221


今天完成的事情:

学习正则

Java实现有效时间短信验证码


明天计划的事情:

邮箱接口

图片接口 


遇到的问题:

使用正则表达式无法面面俱到,换号段需要更改


收获:

参考网址:https://www.runoob.com/java/java-regular-expressions.html

1.java中使用正则表达式

首先 创建一个pattern对象,对正则表达式进行编译

然后 调用pattern类的match方法,进行对比操作

用于验证电话号码的表达式

@Test
public void RETest() {
String a = "15940237561";
   String regex = "0\\d{2,3}[-]?\\d{7,8}|0\\d{2,3}\\s?\\d{7,8}|13[0-9]\\d{8}|15[1089]\\d{8}";
   System.out.println(a.matches(regex));
}

2.Java实现有效时间短信验证码

逻辑为将生成的验证码放入redis中,设定过期时间,

在注册时调用redis中验证码进行比对即可

// 获取短信验证码
@RequestMapping(value = "/regCode", method = RequestMethod.POST)
public ModelAndView regCode(@RequestParam String phoneNum) {
ModelAndView modelAndView = new ModelAndView("phoneCode");
   String regex = "0\\d{2,3}[-]?\\d{7,8}|0\\d{2,3}\\s?\\d{7,8}|13[0-9]\\d{8}|15[1089]\\d{8}";
   if (phoneNum.matches(regex)) {
ModelAndView login=new ModelAndView("loginpage");
       TenxunMessageUtil.sendMesg(phoneNum);
       String regCode = TenxunMessageUtil.getRegCode();
       //将验证码添加如redis缓存
       RedisUtils.opsForValue().set(phoneNum,regCode,1,TimeUnit.MINUTES);
       login.addObject("phoneNum",phoneNum);
       login.addObject("regCode",regCode+"请在1分钟内使用");

       return login;
   }
modelAndView.addObject("phoneResult","手机账号有问题");
   return modelAndView;
}
@RequestMapping(value = "/register", method = RequestMethod.POST)
public ModelAndView insertStudent(String username, String password,String phoneNum,String regCode ) throws Exception {
ModelAndView modelAndView = new ModelAndView("loginpage");
   if (userService.selectUserName(username) != null) {
modelAndView.setViewName("loginpage");
       modelAndView.addObject("result", "用户名已存在");
       return modelAndView;
   } else {
if( regCode.equals(RedisUtils.opsForValue().get(phoneNum))) {
User user = new User();
           long t = System.currentTimeMillis();
           user.setUsername(username);
           user.setPassword(PasswordUtil.generate(password));
           user.setCreateAt(t);
           user.setUpdateAt(t);
           modelAndView.setViewName("regsuccess");
           return modelAndView;
       }
modelAndView.addObject("result","验证码错误或失效");
       return modelAndView;
   }
}






返回列表 返回列表
评论

    分享到