/^\d{4}(19|20)\d{2}1\d{13}$/
以上是匹配你所要的22位号码条件
如果你还要和后面的比较的话,我想要利用程序的,单凭正则可能不行。

解决方案 »

  1.   

    /^\d{4}(19|20)\d{2}1\d{13}$/
    的不错,不过他的就是年份以19XX和20XX开始的,什么叫做年份啊,任何4位的数字都是年份呢
      

  2.   

    <% 
    function RegExpTest(patrn, strng)
    Dim regEx, retVal          ' 建立变量。
    Set regEx = New RegExp     ' 建立正则表达式。
    regEx.Pattern = patrn      ' 设置模式。
    regEx.IgnoreCase = False   ' 设置是否区分大小写。
    retVal = regEx.Test(strng) ' 执行搜索测试。
    If retVal Then 
    RegExpTest =true
    Else
    RegExpTest =false
    End If 
    End function
    %><%
    user_time=trim(request("user_time"))           '出生日期
    user_idnumber=trim(request("user_idnumber"))   '身份证号
    user_address=trim(request("user_address"))     '家庭住址'出生日期
    if RegExpTest("^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$", user_time) =false then    
        session("ErrorMsg")="〖出生日期〗不能为空或格式不正确"
    Session("PG_ID")=""
    response.redirect "Err.asp"
    response.end
    end if
    '身份证号
    if RegExpTest("^[0-9]{0,20}[a-zA-Z]{0,1}$", user_idnumber) =false then    
        session("ErrorMsg")="〖身份证号〗输入字符不能超过20位"
    Session("PG_ID")=""
    response.redirect "Err.asp"
    response.end
    end if
    '家庭住址
    if len(user_address)>50 then    
        session("ErrorMsg")="〖家庭住址〗输入字符不能超过50位"
    Session("PG_ID")=""
    response.redirect "Err.asp"
    response.end
    end if
    %>