jsp中正则匹配中文字符的有关问题
求教:jsp中正则匹配中文字符的问题
在做一个注册用户功能中,验证昵称必须为中文汉字,但总是通不过,求教各位,感激不尽!
Form类中验证昵称中文字符的部分代码:
验证注册servlet的部分代码:
jsp注册页面的部分代码:
------解决思路----------------------
在Form form = WebUtils.getBean(request, Form.class);这行下断点,看看nickname是不是正常的汉字。
另外[\u4e00-\u9fa5]+$ 这个正则只匹配结尾,没匹配开头
在做一个注册用户功能中,验证昵称必须为中文汉字,但总是通不过,求教各位,感激不尽!
Form类中验证昵称中文字符的部分代码:
//判断昵称是否有效
if(this.nickname==null || "".equals(this.nickname.trim())){
isOK = false;
errors.put("nickname", "昵称不能为空!");
}else if(!this.email.matches("[\u4e00-\u9fa5]+$")){ //匹配中文字符
isOK = false;
errors.put("nickname", "昵称必须为汉字!");
}
验证注册servlet的部分代码:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//这里也显式设定了UTF-8码
request.setCharacterEncoding("UTF-8");
Form form = WebUtils.getBean(request, Form.class);
Boolean b = form.isValid();
if (!b) {
//表单验证失败后,会将form对象存放在request中,回送给注册页面 ,然后在注册页面中显示错误信息
request.setAttribute("form", form);
request.getRequestDispatcher("/WEB-INF/jsp/register.jsp").forward(request, response);
return;
}
jsp注册页面的部分代码:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!--头部也加入了page指令,设定了UTF-8-->
<td>
<input type="text" name="nickname" value="${form.nickname }">
<span>${form.errors.nickname }</span> <!--也是通过EL表达式取出的,但是写中文字符,总是验证不过去-->
</td>
------解决思路----------------------
在Form form = WebUtils.getBean(request, Form.class);这行下断点,看看nickname是不是正常的汉字。
另外[\u4e00-\u9fa5]+$ 这个正则只匹配结尾,没匹配开头