function check(val){
if(val.match(/^([1-2][0-2][0-9]&)*([1-2][0-2][0-9])$/)==null) return false;
    var arr = val.split("&");
    for(var i=0;i<arr.length;i++){
       if(arr[i]!=101 && ((arr[i]<201 || arr[i]>220))) return false;
    }
return true;
}
var val = "101&202&202&204&202&202&101";
var b = check(val);
if (b) alert("匹配");
else alert("不匹配");

解决方案 »

  1.   

    <script language="javascript">
    function checkStr(str)
    {
    var reg=/^((101)|(2[01]\d)|(220))(&((101)|(2[01]\d)|(220)))*$/;
    if(reg.test(str))
    return true;
    else
    return false;
    }
    var str1="101";
    var str2="101&";
    var str3="220";
    var str4="101&201&210&220&"
    alert(checkStr(str4));
    </script>
      

  2.   

    <script language="javascript">
    function checkStr(str)
    {
    var reg=/^((101)|(2[01]\d)|(220))(&((101)|(2[01]\d)|(220)))*$/;
    if(reg.test(str))
    return true;
    else
    return false;
    }
    var str1="101";
    var str2="101&";
    var str3="220";
    var str4="101&201&210&220&"
    alert(checkStr(str4));
    </script>