VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 777|回复: 2

关于Struts动态校验的问题,有关正则表达式的,请指教

[复制链接]

1

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-3-6 09:30:01 | 显示全部楼层 |阅读模式
我想在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);
        }
是好用的。
回复

使用道具 举报

0

主题

6

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-5-29 15:30:02 | 显示全部楼层
我用Struts时没校验过中文
你试试加个组如何^([\u4e00-\u9fa5]*)$
祝你好运
回复

使用道具 举报

1

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-8-7 14:45:02 | 显示全部楼层
.xml文件不支持UNICODE。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表