1、长度为12位  前两位为字母,后面10位为数字
2、长度为9位   1位字母+8位数字
3、只能输入数字
4、只能输入日期时间型
5、可以输入不超过20个的任意字符
6、可以输入不超过20个的任意字符
7、可以输入不超过10位任意字符

解决方案 »

  1.   

    1. ^[a-zA-Z]{2}\d{10}$
    2. ^[a-zA-Z]\d{8}$
    3. ^\d*$
    4.日期比较麻烦,主要是润年的问题.
    5
    下面几个都不用正则.maxlength 就可.
      

  2.   

    1、长度为12位 前两位为字母,后面10位为数字
    /^\w{2}\d{10}$/
    2、长度为9位 1位字母+8位数字
    /^[\d*\w{1}\d*]{9}$/
    3、只能输入数字
    /\d/
    4、只能输入日期时间型
    /\d{4}-\d{1,2}-\d{1,2}/
    5、可以输入不超过20个的任意字符
    /\.{0,19}/
    6、可以输入不超过20个的任意字符
    /\.{0,19}/
    7、可以输入不超过10位任意字符
    /\.{0,9}/
      

  3.   

    日期
    ^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$考虑了闰年和2月
      

  4.   

    1、长度为12位  前两位为字母,后面10位为数字
    ^[a-zA-Z]{2}\d{10}$
    2、长度为9位   1位字母+8位数字
    ^[a-zA-Z]\d{8}$
    如果不是第一位为字母,而是任意位置
    ^(?=.*{9})(?=\d*[a-zA-Z]\d*)[a-zA-Z\d]$
    3、只能输入数字
    ^\d+$
    4、只能输入日期时间型
    日期的比较麻烦,等下单独给出
    5、可以输入不超过20个的任意字符
    ^.{0,20}$
    6、可以输入不超过20个的任意字符
    同上了^_^
    7、可以输入不超过10位任意字符
    ^.{0,10}$
      

  5.   

    以前写的一个验证日期的,格尔历的日期验证,可以匹配以下日期19990202
    20000229
    20040229
    20071231^(0[1-9]|[12]\d)(((\d{2}((0[13578]|1[02])(0[1-9]|[12]\d|3[01])|(0[13456789]|1[012])(0[1-9]|[12]\d|30)|02(0[1-9]|1\d|2[0-8])))|([02468][048]|[13579][26])0229))$
      

  6.   

    ^(((1[6-9]|[2-9]\d)(([02468][048])|([13579][26]))(-)?((((0?[13578])|(1[02]))(-)?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))(-)?((0?[1-9])|([1-2][0-9])|(30)))|(0?2(-)?((0?[1-9])|([1-2][0-9])))))|((1[6-9]|[2-9]\d)(([02468][1235679])|([13579][01345789]))(-)?((((0?[13578])|(1[02]))(-)?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))(-)?((0?[1-9])|([1-2][0-9])|(30)))|(0?2(-)?((0?[1-9])|(1[0-9])|(2[0-8]))))))$日期,yyyy-MM-dd格式,并带闰年判断,年份为1600-9999,如对年份或是连接符“-”有要求,稍加改进即可
      

  7.   

    身份证号码在C#里面可以用 \d{18}|\d{15} 限制
    可是用javascritp就不行不知道为什么 /\d{18}|\d{15}/
    用这个只要是数字并大于等于15个就能通过,不明白为什么?同样楼上的5,6,7题在javascript里面用正则是不行的
      

  8.   

    1、长度为12位  前两位为字母,后面10位为数字
    ^([a-zA-Z]{2})([\d]{9})$2、长度为9位   1位字母+8位数字
    ^([a-zA-Z]{1})([\d]{8})$3、只能输入数字
    \d
      

  9.   

    1、长度为12位  前两位为字母,后面10位为数字
    ^[a-zA-Z]{2}\d{10}$
    2、长度为9位   1位字母+8位数字
    ^[a-zA-Z]\d{8}$
    3、只能输入数字
    ^\d+$
    4、只能输入日期时间型
    给出几中js中的
    //日期格式验证JS文件-DrPeng_SW
    <!-- 
    //---短时间,形如 (13:04:06)
    function isTime(str)
    {
        var a = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/);
        if (a == null) {alert('输入的参数不是时间格式'); return false;}
        if (a[1]>24 || a[3]>60 || a[4]>60)
        {
          alert("时间格式不对");
          return false
        }
        return true;
    }
    //---短日期,形如 (2003-12-05)
    function strDateTime(str)
    {
        var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
        if(r==null)return false;
        var d= new Date(r[1], r[3]-1, r[4]);
        return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
    }
    //---2.3 长时间,形如 (2003-12-05 13:04:06)
    function strDateTime(str)
    {
        var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;
        var r = str.match(reg);
        if(r==null)return false;
        var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);
        return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]);
    }
    function checkDate(dt) {
    if (dt.length == 6) {
    var d = new Date();
    yy = d.getYear().toString().substring(2,4);
    if (dt > yy) dt = "19" + dt;
    else dt = "20" + dt;
    }
    yyyy = dt.substring(0,4);
    mm = dt.substring(4,6);
    dd = dt.substring(6,8);
    if (mm > "12" || mm < "01") return false;
    if (dd > "31" || dd < "01") return false;
    else if (dd > "30") {
    if (mm=="02" || mm=="04" || mm=="06" || mm=="09" || mm=="11") return false;
    } else if (dd > "29") {
    if (mm=="02") return false;
    } else if (dd == "29") {
    if (mm=="02" && (yyyy%4 != 0 || (yyyy%100 == 0 && yyyy%400 != 0))) return false;
    }

    return true;
    }
    //-->C#中 
     //验证年月日 
            public static bool IsValidDate(string strIn)
            {
                return Regex.IsMatch(strIn, @"^2\d{3}-(?:0?[1-9]|1[0-2])-(?:0?[1-9]|[1-2]\d|3[0-1])(?:0?[1-9]|1\d|2[0-3]):(?:0?[1-9]|[1-5]\d):(?:0?[1-9]|[1-5]\d)$");
            }567如果是输入中有汉字判断的话 最好还是不用正则表达式
    可使用下面函数判断
    /// <summary>
            /// 检测含有中文字符串的实际长度
            /// </summary>
            /// <param name="str">字符串</param>
            public static int cnLenth(string str)
            {
                System.Text.ASCIIEncoding n = new System.Text.ASCIIEncoding();
                byte[] b = n.GetBytes(str);
                int l = 0; // l 为字符串之实际长度
                for (int i = 0; i <= b.Length - 1; i++)
                {
                    if (b[i] == 63) //判断是否为汉字或全脚符号
                    {
                        l++;
                    }
                    l++;
                }
                return l;
            }
      

  10.   

    1、长度为12位  前两位为字母,后面10位为数字
    [a-zA-Z]{2}\d{10}
    2、长度为9位   1位字母+8位数字
    [a-zA-Z]\d{8}
    3、只能输入数字
    ^\d+$
    4、只能输入日期时间型
    5、可以输入不超过20个的任意字符
    ^.{0,20}$
    6、可以输入不超过20个的任意字符
    同上
    7、可以输入不超过10位任意字符
    ^.{0,10}$
      

  11.   

    1、[a-zA-Z]{2}\d{10}
    2、[a-zA-Z]{1}\d{8}
    3、\d+
    4、只能输入日期时间型
    (\d{4}-\d{2}-\d{2})|(\d{4}\.\d{2}\.\d{2})
    没有验证合法
    5、.{0,20}
    6、.{0,20}
    7、.{0,10}
      

  12.   

    日期不用正则了,直接在 try{}catch{}中 判断。