<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 5, 文章 - 0, 評論 - 20, 引用 - 0
    數據加載中……

    普元常用校驗腳本2:check.js

    /*
    -------------------------------------------------------------------------------
    文件名稱:check.js
    說    明:JavaScript腳本,用于檢查網頁提交表單的輸入數據
    版    本:1.0
    修改紀錄:
    ---------------------------------------------------------------------------
    時間  修改人  說明
    2002-8-29 libo  創建
    2004-03-08  xueyishan    修改,加入checkMobile()
    2005-06-01  zhouming    修改了isDate(),支持格式
    -------------------------------------------------------------------------------  
    */

    /*
    用途:校驗ip地址的格式
    輸入:strIP:ip地址
    返回:如果通過驗證返回true,否則返回false; 
    */
    function isIP(strIP) {
            if (isNull(strIP)) return false;
     var re=/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/g //匹配IP地址的正則表達式
     if(re.test(strIP))
     {
      if( RegExp.$1 <256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256) return true;
     }
     return false;
    }

    /*
    用途:檢查輸入字符串是否為空或者全部都是空格
    輸入:str
    返回:
     如果全是空返回true,否則返回false
    */
    function isNull( str ){
     if ( str == "" ) return true;
     var regu = "^[ ]+$";
     var re = new RegExp(regu);
     return re.test(str);
    }


    /*
    用途:檢查輸入對象的值是否符合整數格式
    輸入:str 輸入的字符串
    返回:如果通過驗證返回true,否則返回false 
    */
    function isInteger( str ){ 
     var regu = /^[-]{0,1}[0-9]{1,}$/;
            return regu.test(str);
    }

    /*
    用途:檢查輸入手機號碼是否正確
    輸入:
     s:字符串
    返回:
     如果通過驗證返回true,否則返回false 
    */
    function checkMobile( s ){  
     var regu =/^[1][3][0-9]{9}$/;
     var re = new RegExp(regu);
     if (re.test(s)) {
       return true;
     }else{
       return false;
     }
    }
     
     
    /*
    用途:檢查輸入字符串是否符合正整數格式
    輸入:
     s:字符串
    返回:
     如果通過驗證返回true,否則返回false 
    */
    function isNumber( s ){  
     var regu = "^[0-9]+$";
     var re = new RegExp(regu);
     if (s.search(re) != -1) {
        return true;
     } else {
        return false;
     }
    }

    /*
    用途:檢查輸入字符串是否是帶小數的數字格式,可以是負數
    輸入:
     s:字符串
    返回:
     如果通過驗證返回true,否則返回false 
    */
    function isDecimal( str ){  
             if(isInteger(str)) return true;
     var re = /^[-]{0,1}(\d+)[\.]+(\d+)$/;
     if (re.test(str)) {
        if(RegExp.$1==0&&RegExp.$2==0) return false;
        return true;
     } else {
        return false;
     }
    }

    /*
    用途:檢查輸入對象的值是否符合端口號格式
    輸入:str 輸入的字符串
    返回:如果通過驗證返回true,否則返回false 
    */
    function isPort( str ){ 
     return (isNumber(str) && str<65536);
    }

    /*
    用途:檢查輸入對象的值是否符合E-Mail格式
    輸入:str 輸入的字符串
    返回:如果通過驗證返回true,否則返回false 
    */
    function isEmail( str ){ 
     var myReg = /^[-_A-Za-z0-9]+@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/;
     if(myReg.test(str)) return true;
     return false;
    }

    /*
    用途:檢查輸入字符串是否符合金額格式
     格式定義為帶小數的正數,小數點后最多三位
    輸入:
     s:字符串
    返回:
     如果通過驗證返回true,否則返回false 
    */
    function isMoney( s ){  
     var regu = "^[0-9]+[\.][0-9]{0,3}$";
     var re = new RegExp(regu);
     if (re.test(s)) {
        return true;
     } else {
        return false;
     }
    }
    /*
    用途:檢查輸入字符串是否只由英文字母和數字和下劃線組成
    輸入:
     s:字符串
    返回:
     如果通過驗證返回true,否則返回false 
    */
    function isNumberOr_Letter( s ){    //判斷是否是數字或字母
     var regu = "^[0-9a-zA-Z\_]+$";
     var re = new RegExp(regu);
     if (re.test(s)) {
       return true;
     }else{
       return false;
     }
    }
    /*
    用途:檢查輸入字符串是否只由英文字母和數字組成
    輸入:
     s:字符串
    返回:
     如果通過驗證返回true,否則返回false 
    */
    function isNumberOrLetter( s ){    //判斷是否是數字或字母
     var regu = "^[0-9a-zA-Z]+$";
     var re = new RegExp(regu);
     if (re.test(s)) {
       return true;
     }else{
       return false;
     }
    }
     /*
    用途:檢查輸入字符串是否只由漢字、字母、數字組成
    輸入:
     value:字符串
    返回:
     如果通過驗證返回true,否則返回false 
    */
    function isChinaOrNumbOrLett( s ){    //判斷是否是漢字、字母、數字組成
     var regu = "^[0-9a-zA-Z\u4e00-\u9fa5]+$";  
     var re = new RegExp(regu);
     if (re.test(s)) {
       return true;
     }else{
       return false;
     }
    }

    /*
    用途:判斷是否是日期
    輸入:date:日期;fmt:日期格式
    返回:如果通過驗證返回true,否則返回false
    */
    function isDate( date, fmt ) {
        if (fmt==null) fmt="yyyyMMdd";
        var yIndex = fmt.indexOf("yyyy");
        if(yIndex==-1) return false;
       var year = date.substring(yIndex,yIndex+4);
       var mIndex = fmt.indexOf("MM");
        if(mIndex==-1) return false;
       var month = date.substring(mIndex,mIndex+2);
       var dIndex = fmt.indexOf("dd");
        if(dIndex==-1) return false;
       var day = date.substring(dIndex,dIndex+2);
        if(!isNumber(year)||year>"2100" || year< "1900") return false;
        if(!isNumber(month)||month>"12" || month< "01") return false;
        if(day>getMaxDay(year,month) || day< "01") return false;
        return true;
    }

    function getMaxDay(year,month) {
     if(month==4||month==6||month==9||month==11)
      return "30";
     if(month==2)
      if(year%4==0&&year%100!=0 || year%400==0)
       return "29";
      else
       return "28";
     return "31";
    }

    /*
    用途:字符1是否以字符串2結束
    輸入:str1:字符串;str2:被包含的字符串
    返回:如果通過驗證返回true,否則返回false 
    */
    function isLastMatch(str1,str2)

       var index = str1.lastIndexOf(str2);
       if(str1.length==index+str2.length) return true;
       return false;
    }


    /*
    用途:字符1是否以字符串2開始
    輸入:str1:字符串;str2:被包含的字符串
    返回:如果通過驗證返回true,否則返回false 
    */
    function isFirstMatch(str1,str2)

       var index = str1.indexOf(str2);
       if(index==0) return true;
       return false;
    }

    /*
    用途:字符1是包含字符串2
    輸入:str1:字符串;str2:被包含的字符串
    返回:如果通過驗證返回true,否則返回false 
    */
    function isMatch(str1,str2)

       var index = str1.indexOf(str2);
       if(index==-1) return false;
       return true;
    }


    /*
    用途:檢查輸入的起止日期是否正確,規則為兩個日期的格式正確,
     且結束如期>=起始日期
    輸入:
     startDate:起始日期,字符串
     endDate:結束如期,字符串
    返回:
     如果通過驗證返回true,否則返回false 
    */
    function checkTwoDate( startDate,endDate ) {
     if( !isDate(startDate) ) {
      alert("起始日期不正確!");
      return false;
     } else if( !isDate(endDate) ) {
      alert("終止日期不正確!");
      return false;
     } else if( startDate > endDate ) {
      alert("起始日期不能大于終止日期!");
      return false;
     }
     return true;
    }

    /*
    用途:檢查輸入的Email信箱格式是否正確
    輸入:
     strEmail:字符串
    返回:
     如果通過驗證返回true,否則返回false 
    */
    function checkEmail(strEmail) {
     //var emailReg = /^[_a-z0-9]+@([_a-z0-9]+\.)+[a-z0-9]{2,3}$/;
     var emailReg = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
     if( emailReg.test(strEmail) ){
      return true;
     }else{
      alert("您輸入的Email地址格式不正確!");
      return false;
     }
    }

    /*
    用途:檢查輸入的電話號碼格式是否正確
    輸入:
     strPhone:字符串
    返回:
     如果通過驗證返回true,否則返回false 
    */
    function checkPhone( strPhone ) {
     var phoneRegWithArea = /^[0][1-9]{2,3}-[0-9]{5,10}$/;
     var phoneRegNoArea = /^[1-9]{1}[0-9]{5,8}$/;
     var prompt = "您輸入的電話號碼不正確!"
     if( strPhone.length > 9 ) {
      if( phoneRegWithArea.test(strPhone) ){
       return true;
      }else{
       alert( prompt );
       return false;
      }
     }else{
      if( phoneRegNoArea.test( strPhone ) ){
       return true;
      }else{
       alert( prompt );
       return false;
      }  
     }
    }
     

    /*
    用途:檢查復選框被選中的數目
    輸入:
     checkboxID:字符串
    返回:
     返回該復選框中被選中的數目 
    */ 
    function checkSelect( checkboxID ) {
     var check = 0;
     var i=0;
     if( document.all(checkboxID).length > 0 ) {
      for(  i=0; i<document.all(checkboxID).length; i++ ) {
       if( document.all(checkboxID).item( i ).checked  ) {
        check += 1;
       }    
      }
     }else{
      if( document.all(checkboxID).checked )
       check = 1;
     }
     return check;
    }

    function getTotalBytes(varField) {
     if(varField == null)
      return -1;
     
     var totalCount = 0;
     for (i = 0; i< varField.value.length; i++) {
      if (varField.value.charCodeAt(i) > 127)
       totalCount += 2;
      else
       totalCount++ ;
     }
     return totalCount;
    }

    function getFirstSelectedValue( checkboxID ){
     var value = null;
     var i=0;
     if( document.all(checkboxID).length > 0 ){
      for(  i=0; i<document.all(checkboxID).length; i++ ){
       if( document.all(checkboxID).item( i ).checked ){
        value = document.all(checkboxID).item(i).value;
        break;
       }
      }
     } else {
      if( document.all(checkboxID).checked )
       value = document.all(checkboxID).value;
      }
     return value;

    function getFirstSelectedIndex( checkboxID ){
     var value = -2;
     var i=0;
     if( document.all(checkboxID).length > 0 ){
      for(  i=0; i<document.all(checkboxID).length; i++ ) {
       if( document.all(checkboxID).item( i ).checked  ) {
        value = i;
        break;
       }
      }
     } else {
      if( document.all(checkboxID).checked )
       value = -1;
     }
     return value;
    }
     
    function selectAll( checkboxID,status ) {
     if( document.all(checkboxID) == null)
      return;

     if( document.all(checkboxID).length > 0 ){
      for(  i=0; i<document.all(checkboxID).length; i++ ) {
       document.all(checkboxID).item( i ).checked = status;
      }
     } else {
      document.all(checkboxID).checked = status;
     }
    }

    function selectInverse( checkboxID ) {
     if( document.all(checkboxID) == null)
      return;

     if( document.all(checkboxID).length > 0 ) {
      for(  i=0; i<document.all(checkboxID).length; i++ ) {
       document.all(checkboxID).item( i ).checked = !document.all(checkboxID).item( i ).checked;
      }
     } else {
      document.all(checkboxID).checked = !document.all(checkboxID).checked;
     }
    }

    function checkDate( value ) {
     if(value=='') return true;
     if(value.length!=8 || !isNumber(value)) return false; 
     var year = value.substring(0,4);
     if(year>"2100" || year< "1900") return false;
     
     var month = value.substring(4,6);
     if(month>"12" || month< "01") return false;
     
     var day = value.substring(6,8);
     if(day>getMaxDay(year,month) || day< "01") return false;
     
     return true; 
    }

    /*
    用途:檢查輸入的起止日期是否正確,規則為兩個日期的格式正確或都為空
     且結束日期>=起始日期
    輸入:
     startDate:起始日期,字符串
     endDate:  結束日期,字符串
    返回:
     如果通過驗證返回true,否則返回false 
    */
    function checkPeriod( startDate,endDate ) {
     if( !checkDate(startDate) ) {
      alert("起始日期不正確!");
      return false;
     } else if( !checkDate(endDate) ) {
      alert("終止日期不正確!");
      return false;
     } else if( startDate > endDate ) {
      alert("起始日期不能大于終止日期!");
      return false;
     }
     return true;
    }

    /*
    用途:檢查證券代碼是否正確
    輸入:
     secCode:證券代碼
    返回:
     如果通過驗證返回true,否則返回false 
    */
    function checkSecCode( secCode ) {
     if( secCode.length !=6 ){
      alert("證券代碼長度應該為6位");
      return false;
     }
     
     if(!isNumber( secCode ) ){
      alert("證券代碼只能包含數字");  
      return false;
        }
     return true;
    }

    /****************************************************
    function : cTrim(sInputString,iType)
    description : 字符串去空格的函數
    parameters : iType: 1=去掉字符串左邊的空格
          2=去掉字符串左邊的空格
          0=去掉字符串左邊和右邊的空格
    return value: 去掉空格的字符串
    ****************************************************/
    function cTrim(sInputString,iType)
    {
     var sTmpStr = ' ';
     var i = -1;
     
     if(iType == 0 || iType == 1)
     {
      while(sTmpStr == ' ')
      {
       ++i;
       sTmpStr = sInputString.substr(i,1);
      }
      sInputString = sInputString.substring(i);
     } 
     if(iType == 0 || iType == 2)
     {
      sTmpStr = ' ';
      i = sInputString.length;
      while(sTmpStr == ' ')
      {
       --i;
       sTmpStr = sInputString.substr(i,1);
      }
      sInputString = sInputString.substring(0,i+1);
     }
     return sInputString;
    }

    /*
    -------------------------------------------------------------------------------
    說    明:JavaScript腳本,驗證表單中的數據項  begin
    -------------------------------------------------------------------------------  
    */
    function checkForm(objFrm){
     var len = 0;
     len = objFrm.elements.length;

     var i = 0;
     var objCheck;
     //文本框
     for(i = 0; i < len; i ++){
      objCheck = objFrm.elements[i];
      if(objCheck.type =="text" && !f_checkTextValid(objCheck) ){
       return false;   
      }
     }
     //下拉框
     for(i = 0; i < len; i ++){
      objCheck = objFrm.elements[i];
      if(objCheck.type =="select-one" && !f_checkSelectValid(objCheck) ){
       return false;   
      }
     }
     //時間段有效
     if( f_checkStartAndEndDate(objFrm) == false) return false;
     
     return true;
    }
    function f_checkSelectValid(obj){
     //alert("check select");
     if(obj.options.length <= 0){
      alert("下拉選框無數據!");
      return false; 
     }
     return true;
    }
    function f_checkStartAndEndDate(frm){
     var len = frm.elements.length;
     if(len == null && len == 0) return true;
     var i=0;
     var temp;
     var objCheck;
     var objStartDate;
     var objEndDate;
     //alert("start date period check");
     try{
      for(i=0; i< len ; i++){
       objCheck = frm.elements[i];
       temp = objCheck.name;
       if( temp.indexOf("startDate") >0 ||temp.indexOf("beginDate")>0 )
        objStartDate = objCheck;
       if( temp.indexOf("endDate") > 0 )
        objEndDate = objCheck;
        
      }
      //alert(objStartDate.value);
      //alert(objEndDate.value);
      if(objStartDate.value==null || objStartDate.value =="" || objStartDate.value ==null || objStartDate.value ==""){
       return true;
      }
      return checkTwoDate(objStartDate.value, objEndDate.value); 
      //alert("end date period check");
     }catch(E){}
     return true;
    }

    function f_checkTextValid(obj){
     //不能為空
     if(obj.getAttribute("isNeed") != null){
      if(f_isNotNull(obj) == false) return false;
     }
     //不能超過長度
     if(obj.getAttribute("maxlength") != null){
      if(f_checkLength(obj) == false) return false;
     }
     var checkType ="";
     checkType = obj.getAttribute("checkType");
     if(checkType==null||checkType=="") return true;
     //
     if (checkType.indexOf("number") >=0){
      if(f_isNumber(obj) == false)  return false;
      if(f_checkNumType(obj,checkType) == false)  return false;
      
     }
     //
     if (checkType.indexOf("positive") >=0){
      if(f_isNumber(obj) == false)  return false;
      if(f_isPositive(obj)==false)  return false;
      if(f_checkNumType(obj,checkType) == false)  return false;
      
     }
     if (checkType.indexOf("date") >=0){
      if(f_checkDate(obj) == false) return false;
      
     }
     
     /*
     switch(checkType){
      case "number": if(f_isNumber(obj) == false) return false;break;
      case "date": if(f_checkDate(obj) == false) return false;break;
      default:
     }
     */
     return true;
    }

    function f_isNotNull(obj){
     if(obj.value == ""){
      f_alert(obj, " 不允許為空值!");
      return false;
     }
     return true;
    }

    function f_isNumber(obj){
     if(isNaN(obj.value)){
       f_alert(obj," 應為數值類型");
      return false;  
     }
     return true;

    }
    function f_checkDate(obj) {
     if(checkDate(obj.value) ==false){
       f_alert(obj," 不是合法日期格式!");
      return false;  
     }
     return true;
    }

    function f_checkLength(obj){
     if(getTotalBytes(obj) > Math.abs( obj.getAttribute("maxlength") ) ){
       f_alert(obj," 超出長度限制!");
      return false;  
     }
     return true;
     
    }

    function  f_alert(obj,alertStr){
     var fielName = obj.getAttribute("fieldName");
     if(fielName == null)
      fielName = "";
     alert(fielName + "\n" +alertStr);
     obj.select();
     obj.focus();
    }

    function f_checkNumType(obj, numType){
     //假設: 已經進行數字類型判斷
     
     var strTemp;
     var numpric;
     var numLen;
     var strArr;
     var defaultLen = 19;
     var defaultpric = 5;

     try{
      if(numType == null|| numType =="") return f_checkNumLenPrec(obj,defaultLen, defaultpric);
      if(numType.indexOf("(") < 0 || numType.indexOf(")") < 0 ) return f_checkNumLenPrec(obj,defaultLen, defaultpric);
      strTemp = numType.substr( numType.indexOf("(") + 1 ,numType.indexOf(")") - numType.indexOf("(") -1 );
      if(strTemp == null||strTemp =="") return f_checkNumLenPrec(obj,defaultLen, defaultpric);
      strArr = strTemp.split(","); 
      numLen = Math.abs( strArr[0] );
      numpric = Math.abs( strArr[1] ); 
      return f_checkNumLenPrec(obj,numLen, numpric);
     }catch(e){
      alert("in f_checkNumType = " + e);
       return f_checkNumLenPrec(obj,defaultLen, defaultpric);
     }

    }

    function f_checkNumLenPrec(obj, len, pric){
     var numReg;
     var value = obj.value;
     var strValueTemp, strInt, strDec; 
     //alert(value + "=====" + len + "====="+ pric);
     try{ 
      
      numReg =/[\-]/;
      strValueTemp = value.replace(numReg, "");
      strValueTemp = strValueTemp.replace(numReg, "");
      //整數
      if(pric==0){
       numReg =/[\.]/;
       //alert(numReg.test(value));
       if(numReg.test(value) == true){
        f_alert(obj, "輸入必須為整數類型!");
        return false; 
       }   
      }
      
      if(strValueTemp.indexOf(".") < 0 ){
       //alert("lennth==" + strValueTemp);  
       if(strValueTemp.length >( len - pric)){
        f_alert(obj, "整數位不能超過"+ (len - pric) +"位");
        return false;
       }
      
      }else{
       strInt = strValueTemp.substr( 0, strValueTemp.indexOf(".") );  
       //alert("lennth==" + strInt);  
       if(strInt.length >( len - pric)){
        f_alert(obj, "整數位不能超過"+ (len - pric) +"位");
        return false;
       }  

       strDec = strValueTemp.substr( (strValueTemp.indexOf(".")+1), strValueTemp.length );  
       //alert("pric==" + strDec);  
       if(strDec.length > pric){
        f_alert(obj, "小數位不能超過"+  pric +"位");
        return false;
       }  
      }
      
      return true;
     }catch(e){
      alert("in f_checkNumLenPrec = " + e);
      return false;
     } 
    }

    function f_isPositive(obj){
     var numReg =/[\-]/;
     if(numReg.test(obj.value) == true){
      f_alert(obj, "必須為正數!");
      return false;
     }
     return true;
     
    }


    /*
    function selectedCheckboxCount(form)
    功能說明:對Form中選中的可選項計數

    參數說明:
    form:指定的表單
    */
    function selectedCheckboxCount(form){
     var length =0;
     var i=0;
     var count =0;
     eles = form.elements;
     while(i<eles.length){
      obj= eles.item(i);
    //  type = obj.attributes.item("type").nodeValue;
            type = obj.type;
      if(type == "checkbox"){
       if(obj.checked){
        count++;
       }
      }
      i++;
     }
     return count;
    }

    //得到字節長度
    function getByteLen(str)
    {
            var l = str.length;
            var n = l;
            for ( var i=0; i<l; i++ )
        
                    if ( str.charCodeAt(i) <0 || str.charCodeAt(i) >255 )
                            n=n+1;
            return n
    }

    /*
    說明:
    1.清除表格中的數據(0.0 和 0)
    2.如果cell中沒有數據,則自動加上一個空格
    3.清除空白行的checkbox

    參數:
    clearzero:是否清除"0"、"0.0",false不清除、true清除(默認為true)
    tablename:要清除的表格名字,默認為sortTable
    */
    function clear_table(clearzero,tablename)
    {
     var tobject;
     if(tablename==null)
      tobject=gmobj("sortTable");
     else
      tobject=gmobj(tablename);
     //如果table未定義,則不進行過濾
     
     if(tobject==null)
      return;
      
     
     //如果函數調用參數為空,表示要清除0、0.0;反之,不要清除0、0.0。
     var clear = (clearzero==null)?true:clearzero;

     //清除0、0.0,填補空格
     var rows = tobject.rows;
     var j=0;
     for(var i=0;i<rows.length;i++)
     {
      //取得第一個cell的屬性clear,如果為1,表示該行沒有數據,則清除該行所有數據
      
       while(tobject.rows[i].cells[j] != null)
       {
        if(clear)
        {
         if(tobject.rows[i].cells[j].innerHTML==0 ||tobject.rows[i].cells[j].innerHTML==0.0||tobject.rows[i].cells[j].innerHTML=="")
          tobject.rows[i].cells[j].innerText=" ";
        }
        else
        {
         if (tobject.rows[i].cells[j].innerHTML=="")
          tobject.rows[i].cells[j].innerText=" ";
        }
        j++;
       }
       j=0;
      
     }
        return true;
    }

    function gmobj(mtxt)  /* Get object by object name */
    {
      if (document.getElementById) {
          m=document.getElementById(mtxt);
      } else if (document.all) {
          m=document.all[mtxt];
      } else if (document.layers) {
          m=document.layers[mtxt];
      }
      return m;
    }
    /*
    -------------------------------------------------------------------------------
    說    明:JavaScript腳本,驗證表單中的數據項  end
    -------------------------------------------------------------------------------  
    */

    /*
    用途:檢查輸入字符串是否是帶小數的數字格式,可以是負數(并且滿足規定的精度)
    輸入:str:字符串
                l:總位數
               d:小數點后位數
    返回:
     如果通過驗證返回true,否則返回false 
    */
    function isDecimal( str,l,d ){  
             if(isInteger(str)) {
        if (l==null)  return true;
        if (str<0) l--;
          if (str.length<=l) return true;
             }

             var re = /^[-]{0,1}(\d+)[\.]+(\d+)$/;
           if (re.test(str)) {
      if (l==null)  return true;
      if (d==null) d=0;
            if(RegExp.$1==0&&RegExp.$2==0) return false;
      if (RegExp.$1.length+RegExp.$2.length<=l
       && RegExp.$2.length<=d)  return true;
        }
     return false;
    }

    posted on 2007-09-16 12:46 primeton 閱讀(1374) 評論(4)  編輯  收藏

    評論

    # re: 普元常用校驗腳本2:check.js  回復  更多評論   

    不錯,可以類化一下.
    2007-09-16 18:03 | sitinspring

    # re: 普元常用校驗腳本2:check.js  回復  更多評論   

    好東西,謝謝共享!
    2007-09-17 08:20 | jackson110

    # re: 普元常用校驗腳本2:check.js  回復  更多評論   

    不錯,有些挺實用的
    2007-09-17 12:40 | 千里冰封

    # re: 普元常用校驗腳本2:check.js[未登錄]  回復  更多評論   

    非常謝謝,很多都是不錯用的,謝謝
    2007-09-17 22:10 | 小天

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲爆乳大丰满无码专区| 亚洲最大中文字幕无码网站| jizz日本免费| 亚洲午夜福利精品久久| 免费看一级一级人妻片| 免费大黄网站在线看| 校园亚洲春色另类小说合集| 国产免费观看网站| 亚洲av无码成人影院一区| 精品久久久久久久免费加勒比| 亚洲av综合av一区二区三区| 思思99re66在线精品免费观看| 亚洲人成网站在线播放2019| 午夜一级毛片免费视频| 美女羞羞免费视频网站| 久久久久亚洲AV综合波多野结衣 | 蜜臀AV免费一区二区三区| 亚洲妇女水蜜桃av网网站| 免费99精品国产自在现线| 亚洲一线产品二线产品| 四虎永久在线精品免费观看地址 | 国产精品免费看久久久香蕉| 亚洲AV无码乱码国产麻豆穿越 | 国产精品亚洲AV三区| 久久亚洲av无码精品浪潮| 国产免费阿v精品视频网址| 久久亚洲精品中文字幕| 欧美a级成人网站免费| 国产亚洲成在线播放va| 亚洲色爱图小说专区| 2021精品国产品免费观看| 亚洲精品无码专区| 亚洲精品无码永久在线观看你懂的| 最近免费视频中文字幕大全| 国产 亚洲 中文在线 字幕| 亚洲国产精品嫩草影院久久| 午夜免费福利视频| 久久亚洲AV成人无码国产最大| 2048亚洲精品国产| 成人免费的性色视频| 无遮挡a级毛片免费看|