|
我想在jsp的text框中校验中文,下面是我的jsp和validate.xml中相关部分的设置:
input.jsp:
<html:text name="userInfoForm" property="searchuserid" size="24" maxlength="20"/>
validate.xml
<field property="searchuserid" depends="mask">
<arg key="maintenanceUserForm.searchuserid" resource="true" />
<msg name="mask" key="errors.maintenanceuser.userid.type"/>
<var>
<var-name>mask</var-name>
<var-value>^[\u4e00-\u9fa5]*$</var-value>
</var>
</field>
结果是,中文没有验证出来,验证出的是:u,4,e,0,9,f,a,5这几个字符,这是怎么回事啊?
我写了一个java程序,来验证中文 ^[\u4e00-\u9fa5]*$ 这个正则表代是正确的。为什么放到了struts的动态校验框架中就不好用了呢?
我还试验了<var-value>^[0-9]*$</var-value> 可以验证出数字
但是,<var-value>^[\u0030-\u0039]*$</var-value> 除了0-9,连a-z,A-Z都可以通过验证,这是因为什么啊?
public static void main(String[] args) {
String str="1";
String regEx="^[\u0030-\u0039]*$";
Pattern p=Pattern.compile(regEx);
Matcher m=p.matcher(str);
boolean result=m.find();
System.out.println(result);
}
是好用的。 |
|