1. 程式人生 > >js 常用方法大全

js 常用方法大全


//-------常用js Function

//------------start 已驗證---------------//
//定義報錯資訊
var MSG_ERR001="$1不能為空!";
var MSG_ERR002="$1的文字格式為$2!";
var MSG_ERR003="$1不能超過$2個位元組!";
var MSG_ERR004="不能刪除$1!!";

/**
* alert : 彈出出錯資訊
* 引數 : sMsg 報錯資訊
*     sParam1 引數1
*     sParam2 引數2
*     sParam3 引數3
* 返回值 : 無
*/
function alertMSG(sMsg,sParam1,sParam2,sParam3) {
 //引數1的替換
 if ( sParam1 ) {
        sMsg = sMsg.replace( "$1", sParam1 );
    }
    //引數2的替換
    if ( sParam2 ) {
        sMsg = sMsg.replace( "$2", sParam2 );
    }
    //引數3的替換
    if ( sParam3 ) {
        sMsg = sMsg.replace( "$3", sParam3 );
    }
    //Message表示
    alert( sMsg );
}
/**
* cmConfirm:彈出確認資訊
* 引數 : sMsg 報錯資訊
*     sParam1 引數1
*     sParam2 引數2
*     sParam3 引數3
* 返回值:true ok場合
*  false cancel場合
*/
function confirmMSG( sMsg, sParam1, sParam2, sParam3 ) {
 //引數1的替換
 if ( sParam1 ) {
        sMsg = sMsg.replace( "$1", sParam1 );
    }
    //引數2的替換
    if ( sParam2 ) {
        sMsg = sMsg.replace( "$2", sParam2 );
    }
    //引數3的替換
    if ( sParam3 ) {
        sMsg = sMsg.replace( "$3", sParam3 );
    }
    //Message表示
    return confirm(sMsg);
}

/**
* lTrim : 文字列左邊空格去掉
* 引數 : oTarget 輸入的文字列
* 返回值:返回去掉左邊空格的文字列
*/
function lTrim(oTarget) {
 var oResult = oTarget.replace( /^ */, "" );
 return(oResult);
}

/**
* rTrim : 文字列右邊空格去掉
* 引數 : oTarget 輸入的文字列
* 返回值:返回去掉右邊空格的文字列
*/
function rTrim(oTarget) {
 var oResult = oTarget.replace( / *$/, "" );
 return(oResult);
}

/**
* trim : 文字列左右兩邊空格去掉
* 引數 : oTarget 輸入的文字列
* 返回值:返回去掉左右兩邊空格的文字列
*/
function trim(oTarget) {
 var oResult;
 //去左邊空格
 oResult = lTrim(oTarget);
 //去右邊空格
 oResult = rTrim(oTarget);
 return(oResult);
}
/**
* parseNum : format消除(數值)
* 引數 : sVal 輸入的文字列
* 返回值:format消除後的值
*/
function parseNum( sVal ) {
 if( !sVal ) {
        return "";
    }
    var sResult = new String( sVal );
    sResult = sResult.replace(/^ *0*/,"")   //去掉左邊空格
                     .replace(/ +$/,"")     //去掉右邊空格
                     .replace(/^///,"")     //金額
                     .replace(/,/g,"")     //逗號
                     .replace(//./g,"")     //小數點
                     .replace(/-/g,"");     //槓號
    if ( isNaN( sResult )){
        return "";
    }
    if ( sResult == "" ) {
        return "";
    }
    return eval( sResult );
}
/**
* chkInt : 整數的判斷
* 引數 : oSrc 輸入的文字列
*    sMode 標誌:1 -> 減號可以輸入; 2 -> 減號不可以輸入
* 返回值:true 整數
*       false 整數以外
*/
function chkInt( oSrc, sMode ) {
 var sVal = new String( oSrc );
    if ( sMode == 1 ) {
        if ( sVal.match(/^([+-]?[0-9]{1,3}(,[0-9]{3})*)?$/) == null &&
             sVal.match(/^([+-]?[0-9]+)?$/) == null ) {
            return false;
        }
    } else {
        if ( sVal.match(/^([0-9.]{1,3}(,[0-9.]{3})*)?$/) == null &&
             sVal.match(/^([0-9.]+)?$/) == null ) {
            return false;
        }
    }
    return true;
}
/**
* isDigit : 半形數字的判斷
* 引數 : oSrc 輸入的文字列
* 返回值:true 半形數字
*       false 半形數字以外
*/
function isDigit( oSrc ) {
    var sVal = new String( oSrc );
    if ( sVal != "" ) {
        if ( sVal.match(/^[0-9]+$/) == null ) {
            return false;
        }
    }
    return true;
}

/**
* isDigOrAlp : 半形英數字的判斷
* 引數 : oSrc 輸入的文字列
* 返回值:true 半形英數字
*       false 半形英數字以外
*/
function isDigOrAlp( oSrc ) {
    var sVal = new String( oSrc );
    if ( sVal != "" ) {
        if ( sVal.match(/^[0-9A-Za-z]+$/) == null ) {
            return false;
        }
    }
    return true;
}

/**
* isZenkaku : 全形文字列的判斷
* 引數 : sVal 輸入的文字列
* 返回值:true 全形文字列
*       false 全形文字列以外
*/
function isZenkaku( sVal ) {
    var iCode;
 for (var i = 0; i<sVal.length; i++) {
  iCode = sVal.charCodeAt (i);
  if ((iCode < 127 && iCode != 13 && iCode != 10) || (iCode >= 0xff61 && iCode <= 0xff9f)){
   return false;
  }
 }
 return true;
}
/**
* isHankaku : 半形文字列的判斷
* 引數 : sVal 輸入的文字列
* 返回值:true 半形文字列
*       false 半形文字列以外
*/
function isHankaku( sVal ) {
    var iLen = cmGetEBCDICLen( sVal );
    if ( iLen == sVal.length ) {
        return true;
    } else {
        return false;
    }
}

/**
* getEBCDICLen : 文字列的byte數取得
* 引數 : oSrc 輸入的文字列
* 返回值:文字列的byte數
*/
function getEBCDICLen( sVal ) {
    var iLen = 0;
    for ( var i = 0; i < sVal.length;i++) {
        var sChar = sVal.charAt( i );
        if ( escape( sChar ).length > 3 ) {
            if ( sChar.charCodeAt( 0 ) >= 65382 &&
                 sChar.charCodeAt( 0 ) <= 65439 ) {
                iLen += 2;
            } else {
                iLen += 2;
            }
        } else {   
            iLen += 1;
        }
    }
    return iLen;
}
/**
* checkMailAddress : mail的判斷
* 引數 : sVal 輸入的文字列
* 返回值:true 正常
  false 異常
*/
function checkMailAddress(sVal)

 for(var i=0;i<sVal.length;i++){
  var ascii = sVal.charCodeAt(i);
  //'<':60,'>':62,'{':123,'}':125,':':58,';':59,'"':34,'/':92,'[':91,']':93
  if(ascii == 60 || ascii == 62 || ascii == 123
   || ascii == 125 || ascii == 58 || ascii == 59
   || ascii == 34 || ascii == 92 || ascii == 91
   || ascii == 93){
            return false;
  }
  if(ascii<0 || ascii>255){
   return false;
  }
 }
 var aVal = new Array();
 aVal = sVal.split("@");
 if(aVal.length != 2){
  return false;
 }else{
  if(aVal[0] == "" || aVal[1] == ""){
   return false;
  }
 }
 return true;
}
/**
* checkFieldValue : 輸入值的判斷
* 引數 : pFrame frame名
  pForm form名
  pField field名
  pHissu 必須(1:必須)
  pLenMin 行數(n:min行數)
  pLenMax 行數(n:max行數)
  pAttr 屬性('':全部文字,CN_AL:半形英數字....)
  pNm 專案名
  pFieldFocus 出錯時游標位置
  pIndex 複數專案index
* 返回值:true 正常
  false 異常
*/
function checkFieldValue(pFrame, pForm, pField, pHissu, pLenMin, pLenMax, pAttr, pNm, pFieldFocus, pIndex)
{
  with (window.top.frames[pFrame].document.forms[pForm])
  {
    var wData = '';
    if (elements[pField].length){
        wData = elements[pField][pIndex].value;
    } else{
        wData = elements[pField].value;
    }
 //textarea的場合,去掉換行符
 if (elements[pField].type == "textarea") {
  wData = wData.replace(//r/n/g,"");
 }
    //檔名開頭去掉路徑
    if (pAttr == "FILE" && wData != ""){
      //去掉'/'
      if (wData.match(/^[//]+$/) == null ) {
        var wDataArr = wData.split("//");
        if (wDataArr.length > 1){
          wData = wDataArr[wDataArr.length-1];
        }
      }
    }
    var iLen  = getEBCDICLen(wData);
    //必須項check
    if (pHissu == 1) {
      if (!iLen){
        cmAlert(MSG_ERR001, pNm);
        elements[pFieldFocus].focus();
        return(false);
      }
    }
 if (pLenMax != 0) {
      if (iLen > pLenMax) {
          alertMSG(MSG_ERR003, pNm, pLenMax);
          elements[pFieldFocus].focus();
          return(false);
      }
    }
    //屬性check
    if (pAttr == "CN_AL"){
        if (!isDigOrAlp(wData)) {
            alertMSG(MSG_ERR002, pNm, "半形英數字");
            elements[pFieldFocus].focus();
            return(false);
        }
    }else if (pAttr == "CN"){
        if (!isDigit(wData)) {
            alertMSG(MSG_ERR002, pNm, "半形數字");
            elements[pFieldFocus].focus();
            return(false);
        }
    }else if(pAttr == "KJ"){
  if(!isZenkaku(wData)){
   alertMSG(MSG_ERR002, pNm, "全形文字");
            elements[pFieldFocus].focus();
            return(false);
  }
 }else if(pAttr == "MAL2"){
  if(!checkMailAddress(wData)){
   alertMSG(MSG_ERR002, pNm, "郵件地址");
            elements[pFieldFocus].focus();
            return(false);
  }
 }
    return(true);
 }
}
function   isDate(str){  
if(!str.match(/^/d{4}/-/d/d?/-/d/d?$/)){return   false;}  
var   ar=str.replace(//-0/g,"-").split("-");  
ar=new   Array(parseInt(ar[0]),parseInt(ar[1])-1,parseInt(ar[2]));  
var   d=new   Date(ar[0],ar[1],ar[2]);  
return   d.getFullYear()==ar[0]   &&   d.getMonth()==ar[1]   &&   d.getDate()==ar[2];  
}

//左邊去空白
function testLtrim(sValue) {
for (var i=0; i<=sValue.length; i++ ) {
if(sValue.substring(i,i+1)!=" ")
break;
}
return sValue.substring(i,sValue.length);
}

// 右邊去空白
function testRtrim(sValue) {
for (var i=sValue.length; i>=0; i-- ) {
if(sValue.substring(i-1,i)!=" ")
break;
}
return sValue.substring(0, i);
}

// 左右邊去空白
function testAllTrim(sValue) {
return testRtrim(testLtrim(sValue));
}


//------------end 已驗證---------------//

//------------start 未驗證---------------//
    
    //判斷輸入內容是否為空   
    function IsNull(){   
        var str = document.getElementById('str').value.trim();   
        if(str.length==0){   
            alert('對不起,文字框不能為空或者為空格!');//請將“文字框”改成你需要驗證的屬性名稱!   
        }   
    }   
      
    //判斷日期型別是否為YYYY-MM-DD格式的型別   
    function IsDate(){    
        var str = document.getElementById('str').value.trim();   
        if(str.length!=0){   
            var reg = /^(/d{1,4})(-|//)(/d{1,2})/2(/d{1,2})$/;    
            var r = str.match(reg);    
            if(r==null)   
                alert('對不起,您輸入的日期格式不正確!'); //請將“日期”改成你需要驗證的屬性名稱!   
            }   
    }    
      
    //判斷日期型別是否為YYYY-MM-DD hh:mm:ss格式的型別   
    function IsDateTime(){    
        var str = document.getElementById('str').value.trim();   
        if(str.length!=0){   
            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)   
            alert('對不起,您輸入的日期格式不正確!'); //請將“日期”改成你需要驗證的屬性名稱!   
        }   
    }    
      
    //判斷日期型別是否為hh:mm:ss格式的型別   
    function IsTime()    
    {    
        var str = document.getElementById('str').value.trim();   
        if(str.length!=0){   
        reg=/^((20|21|22|23|[0-1]/d)/:[0-5][0-9])(/:[0-5][0-9])?$/    
            if(!reg.test(str)){   
                alert("對不起,您輸入的日期格式不正確!");//請將“日期”改成你需要驗證的屬性名稱!   
            }   
        }   
    }    
      
    //判斷輸入的字元是否為英文字母   
    function IsLetter()    
    {    
            var str = document.getElementById('str').value.trim();   
            if(str.length!=0){   
            reg=/^[a-zA-Z]+$/;    
            if(!reg.test(str)){   
                alert("對不起,您輸入的英文字母型別格式不正確!");//請將“英文字母型別”改成你需要驗證的屬性名稱!   
            }   
            }   
    }    
      
    //判斷輸入的字元是否為整數   
    function IsInteger()    
    {      
            var str = document.getElementById('str').value.trim();   
            if(str.length!=0){   
            reg=/^[-+]?/d*$/;    
            if(!reg.test(str)){   
                alert("對不起,您輸入的整數型別格式不正確!");//請將“整數型別”要換成你要驗證的那個屬性名稱!   
            }   
            }   
    }    
      
    //判斷輸入的字元是否為雙精度   
    function IsDouble(val)    
    {    
            var str = document.getElementById('str').value.trim();   
            if(str.length!=0){   
            reg=/^[-/+]?/d+(/./d+)?$/;   
            if(!reg.test(str)){   
                alert("對不起,您輸入的雙精度型別格式不正確!");//請將“雙精度型別”要換成你要驗證的那個屬性名稱!   
            }   
            }   
    }    
      
      
    //判斷輸入的字元是否為:a-z,A-Z,0-9   
    function IsString()    
    {    
            var str = document.getElementById('str').value.trim();   
            if(str.length!=0){   
            reg=/^[a-zA-Z0-9_]+$/;    
            if(!reg.test(str)){   
                alert("對不起,您輸入的字串型別格式不正確!");//請將“字串型別”要換成你要驗證的那個屬性名稱!   
            }   
            }   
    }    
      
    //判斷輸入的字元是否為中文   
    function IsChinese()    
    {    
            var str = document.getElementById('str').value.trim();   
            if(str.length!=0){   
            reg=/^[/u0391-/uFFE5]+$/;   
            if(!reg.test(str)){   
                alert("對不起,您輸入的字串型別格式不正確!");//請將“字串型別”要換成你要驗證的那個屬性名稱!   
            }   
            }   
    }    
      
    //判斷輸入的EMAIL格式是否正確   
    function IsEmail()    
    {    
            var str = document.getElementById('str').value.trim();   
            if(str.length!=0){   
            reg=/^/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*$/;   
            if(!reg.test(str)){   
                alert("對不起,您輸入的字串型別格式不正確!");//請將“字串型別”要換成你要驗證的那個屬性名稱!   
            }   
            }   
    }    
      
    //判斷輸入的郵編(只能為六位)是否正確   
    function IsZIP()    
    {    
            var str = document.getElementById('str').value.trim();   
            if(str.length!=0){   
            reg=/^/d{6}$/;   
            if(!reg.test(str)){   
                alert("對不起,您輸入的字串型別格式不正確!");//請將“字串型別”要換成你要驗證的那個屬性名稱!   
            }   
            }   
    }    
      
    //判斷輸入的數字不大於某個特定的數字   
    function MaxValue()    
    {    
        var val = document.getElementById('str').value.trim();   
            if(str.length!=0){   
            reg=/^[-+]?/d*$/;    
            if(!reg.test(str)){//判斷是否為數字型別   
                if(val>parseInt('123')) //“123”為自己設定的最大值   
                {    
                    alert('對不起,您輸入的數字超出範圍');//請將“數字”改成你要驗證的那個屬性名稱!   
                }    
            }   
        }   
    }    
      
      
     Phone : /^((/(/d{2,3}/))|(/d{3}/-))?(/(0/d{2,3}/)|0/d{2,3}-)?[1-9]/d{6,7}(/-/d{1,4})?$/   
     Mobile : /^((/(/d{2,3}/))|(/d{3}/-))?13/d{9}$/   
     Url : /^http:////[A-Za-z0-9]+/.[A-Za-z0-9]+[//=/?%/-&_~`@[/]/':+!]*([^<>/"/"])*$/  
     IdCard : /^/d{15}(/d{2}[A-Za-z0-9])?$/  
     QQ : /^[1-9]/d{4,8}$/  
     
    //為上面提供各個JS驗證方法提供.trim()屬性  
    String.prototype.trim=function(){  
            return this.replace(/(^/s*)|(/s*$)/g, "");   
        }  
    
    
    [input type="text" name="str" ]   
    [input type="button" value=" 確定 " onClick=""]//onClick中寫自己要呼叫的JS驗證函式   
    
//------------start 未驗證---------------//

    
//-------End 常用js Function