如题

解决方案 »

  1.   

    var reg= new RegExp(/^[a-zA-Z]+[a-zA-Z0-9_]*$/gi);
      

  2.   

    问一下,为什么前面[a-zA-z]以这个开头不需要*$,而后面不加我话,只能输入一位的字符呢?
      

  3.   

    不是很明白楼主的意思,出现的符号全都给你解释一遍吧^ 与字符串开始的地方匹配,不匹配任何字符
    [a-zA-Z] 指a-zA-Z中的任意一个字母,但只是一个,而不是多个
    ^[a-zA-Z]放在一起表示以字母开头
    \w 任意一个字母或数字或下划线,也就是 A~Z,a~z,0~9,_ 中任意一个
    * 表达式不出现或出现任意次
    $ 与字符串结束的地方匹配,不匹配任何字符这样写本身就不包含汉字在内的
      

  4.   


     lxcnn(过客) ( ) 信誉:100    Blog  2007-01-31 13:27:10  得分: 0  
    谢谢您的耐心解答,正则有学问啊,能告诉我如何在这里面限定字符长度呢
      

  5.   

    把*换成{m,n}这种形式就行了,m是最小值,n是最大值\w{5}     5位数字,字母或下划线
    \w{5,10}  5~10位的数字,字母或下划线
    \w{5,}    最少5位的数字,字母或下划线
    *相当于{0,}
    +相当于{1,}
    ?相当于{0,1}
      

  6.   

    在这里说吧, 如果是字母 数字 _的这种要求 如果是在.net中 尽量别使用 \w
    \w 是匹配 所有文字字符与_,其中也包括你系统默认语言的字符 如中文
    所以 一般要象慕白兄那样写 要可靠一些
      

  7.   

    TO:cancerser我一般都是先在正则调试工具上调试,之后再用vs调试,以前还真没注意过这个问题,多谢,受教了
      

  8.   

    lxcnn(过客) ( ) 信誉:100    Blog  2007-1-31 14:16:14  得分: 0  
     
     
       
    把*换成{m,n}这种形式就行了,m是最小值,n是最大值\w{5}     5位数字,字母或下划线
    \w{5,10}  5~10位的数字,字母或下划线
    \w{5,}    最少5位的数字,字母或下划线
    *相当于{0,}
    +相当于{1,}
    ?相当于{0,1}
    __________________________________________________________
    我写成^[a-zA-Z]+[a-zA-Z0-9_]{6,16}$这样,不好使啊,怎么回事呢
      

  9.   

    ^[a-zA-Z]+([a-zA-Z0-9_]{6,16})
    试试
      

  10.   

    我写成^[a-zA-Z]+[a-zA-Z0-9_]{6,16}$这样,不好使啊,怎么回事呢--------------------------
    要把前面那个+号去掉,你现在这么写的意思,就是最后为6~16位的a-zA-Z0-9_之一,前面为多少位的字母都可以了^[a-zA-Z][a-zA-Z0-9_]{6,16}$
    这样写加起来一共是7~17位,如果你的总长度要求是6~16位,那改下
    ^[a-zA-Z][a-zA-Z0-9_]{5,15}$
      

  11.   

    uno(钢盅郭子) ( ) 信誉:99    Blog  2007-01-31 15:05:13  得分: 0  
     
     
       ^[a-zA-Z]+([a-zA-Z0-9_]{6,16})
    试试
      ____________________________________________________
    大于6的可以验证出来,但是小于16的就不行了,大家看下