为什么   /^[0-1]{1}$/这个,会变成只要输入0 或 1就报错,2或3就对了

解决方案 »

  1.   


    //等同
    Regex objRegex=new Regex(@"[01]");
    楼主的问题,应该不是表达式的问题;而是用法有误吧?
      

  2.   


    //倒。忘去加头尾了
    Regex objRegex=newRegex(@"^[01]$");
      

  3.   


            public string verifyInput(string inValue,string inName)
            {
                string userNameRegex = @"/^[a-zA-Z0-9]{6,20}$/";   //为什么输入 abcde3 要出错?
                string userNameInfo = "用户名由字母、数字长度在6~20个字符之间";
                 string sexRegex = @"/^[0-1]{1}$/";      //现在是对了
                string sexInfo = "<li>性别只可选男或女</li>";            string verifyRegex="", verifyInfo="";
                switch (inName){
                    case "userNameInput":
                        verifyRegex = userNameRegex;
                        verifyInfo = userNameInfo;
                        break;
                    case "sexInput":
                        verifyRegex = sexRegex;
                        verifyInfo = sexInfo;
                        break;
                    default:
                        return "验证出错";
                }            Regex reg = new Regex(inValue);
                Match mch = reg.Match(verifyRegex);
                if (mch.Success)
                    return "ok";
                else
                    return verifyInfo;
                
            }
    现在变成 为什么输入用户名是 abcde3 要出错了
      

  4.   

    建议你在验证出错时,同时返回inValue和inName的内容,看看你输入的是什么,你把两个输入框合并到一个函数判断了,有可能传递参数的时候搞错了。
      

  5.   


    //C#的正则定义
    Regex objRegex=new Regex(@"(?i)^[a-z0-9]{6,20}$");
    //匹配6到20位的大小字母和数字的任意组合。