我现在在做注册页面,用户名要求如下:
·由字母a~z(不区分大小写)、数字0~9、点、减号或下划线组成
·只能以数字或字母开头和结尾,例如:beijing.2008
·用户名长度为4~18个字符
请帮我做一个按上面要求的验证函数,用户名不能有汉字
谢谢

解决方案 »

  1.   

    用正则表达式
    比如:由字母a~z(不区分大小写)、数字0~9、点、减号或下划线组成 ^[a-zA-Z0-9.,_]*$你可以看看这个入门教程
    http://unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm
      

  2.   

    /* 
     * 由字母a~z(不区分大小写)、数字0~9、点、减号或下划线组成
     * 只能以数字或字母开头和结尾,例如:beijing.2008
     * 用户名长度为4~18个字符 
    */string[] str = new string[] { "beijing.2008", "_bj.2008" };           
    foreach (string b in str)
    {
        Console.WriteLine("{0} is match:{1}",b,Regex.IsMatch(b, @"^[a-zA-Z0-9][a-zA-Z\.\-_]{2,16}[a-zA-Z0-9]").ToString());
    }
    /*
    beijing.2008 is match:True
    _bj.2008 is match:False
    请按任意键继续. . .
    */
      

  3.   

    忘记了结尾字符:
    /* 
     * 由字母a~z(不区分大小写)、数字0~9、点、减号或下划线组成
     * 只能以数字或字母开头和结尾,例如:beijing.2008
     * 用户名长度为4~18个字符 
    */string[] str = new string[] { "beijing.2008", "_bj.2008" };           
    foreach (string b in str)
    {
        Console.WriteLine("{0} is match:{1}",b,Regex.IsMatch(b, @"^[a-zA-Z0-9][a-zA-Z\.\-_]{2,16}[a-zA-Z0-9]$").ToString());
    }
    /*
    beijing.2008 is match:True
    _bj.2008 is match:False
    请按任意键继续. . .
    */
      

  4.   


      System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex
                    ("^[a-z0-9][a-z0-9_\\.\\-]{2,16}[a-z0-9]$", 
                    System.Text.RegularExpressions.RegexOptions.IgnoreCase);
                if (reg.IsMatch("a12.3-45671"))
                {
                    Console.WriteLine("Su");
                    //成功
                }
      

  5.   

    再次修正
    /* 
     * 由字母a~z(不区分大小写)、数字0~9、点、减号或下划线组成
     * 只能以数字或字母开头和结尾,例如:beijing.2008
     * 用户名长度为4~18个字符 
    */string[] str = new string[] { "beijing.2008", "_bj.2008", "bei--___---jing.08" };           
    foreach (string b in str)
    {
        Console.WriteLine("{0} is match {1}",b,Regex.IsMatch(b, @"^[a-zA-Z0-9][a-zA-Z0-9\.\-_]{2,16}[a-zA-Z0-9]$").ToString());
    }
    /*
    beijing.2008 is match True
    _bj.2008 is match False
    bei--___---jing.08 is match True
    请按任意键继续. . .
    */
      

  6.   


    可以直接用visual studio 2005中的RegularExpressionValidator
      

  7.   

    "^[a-zA-Z0-9][a-zA-Z0-9\\.\\-_]{2,16}[a-zA-Z0-9]$"
      

  8.   

    是不是只要在验证控件表达式加这个可以了吗
    ^[a-zA-Z0-9][a-zA-Z\.\-_]{2,16}[a-zA-Z0-9]$好像可以,coman304再硷查一下,
    会给你分的,谢