日期:2014-05-17  浏览次数:20751 次

java中 正则表达式验证中文不好使
在struts2 验证:

public void validateSavemajortypeaction(){
String regex="^[u4e00-\u9fa5],{0,}$";
if(majortypeName==null||"".equals(majortypeName)){
addFieldError("majortypeName", "请输入职位分类名!");
}else if(majortypeName.length()>20||majortypeName.length()<2){
addFieldError("majortypeName", "职位分类名长度必须在(2-20)范围内!");
}else if(!regex.matches(majortypeName)){
addFieldError("majortypeName", "请输入汉字!");
}
}

该如何写正则表达式啊,上面的不管用,请高手指点

------解决方案--------------------
u4e00 前面少了个 \

职位分类名长度必须在(2-20)范围内!

要写成这样:

String regex = "[\u4e00-\u9faf]{2,20}";
------解决方案--------------------
\u4e00-\u9faf