</field-validator>
<field-validator type="regex">
<param name="expression"><![CDATA[(\w{5,20})]]></param>
<message>您输入的用户名只能是字母或数字,且长度在6到20之间</message>
</field-validator>
书上是这么写的 <![CDATA[(\w{5,20})]]>
但是经过我的试验 发现下划线居然好使`
网上查正则表达式我认为可能是这么写[a-zA-Z0-9]  对不?
如果这么写对 那么怎么加入程序中?<param name="expression"><[a-zA-Z0-9]  ></param> 
这样写吗? 感觉不对劲

解决方案 »

  1.   

    \w改为[0-9a-zA-Z]
    \w多匹配一个_
      

  2.   

    \w 匹配字符,数字,下划线和中文。
    我觉得lz的想法正确,\w需要替换为[a-zA-Z0-9].
    这部分这样写试试:
    <param name="expression"><![CDATA[([a-zA-Z0-9])]]></param>
      

  3.   

    ^[a-zA-Z0-9]{1,}$
    //表示1位以上的大小写+数字
      

  4.   

    为什么下划线还是好用? 我写的有问题?
    <param name="expression"><![CDATA[([a-zA-Z0-9]{5,20})]]></param>
      

  5.   


    我是这么写的  但是密码全是下划线还是好用。。
    <param name="expression"><![CDATA[(^[a-zA-Z0-9]{5,20}$)]]></param>