常用筆記: 與VBS當中的Mid()類似的substr()小記


VBS當中有Mid函數,一般形式為:Mid(str,start,len)   對應於JS就類似於:str.substr(start,len)

不過區別的是:VBS中start從1開始,而JS從0開始.

<script>
    //substr(start,length) : 從字符串的start個開始截取,截取length個
    //如果忽略length,則截取到尾.如果length為0或負,則返回空字符串
    
    //從第0個開始截取,截取到尾(相當於作白用功,基本不這么調用!)
    var e1 = (    (e1='0123456789|'), e1.substr(0)    );    
    //從第0個開始截取,截取長度為字符串的長度(相當於作白用功,基本不這么調用!)
    var e2 = (    (e2='0123456789|'), e2.substr(0,e2.length)    );    
    //從第0個開始截取,截取長度為字符串的長度減1(相當於去掉尾部1個字符)
    var e3 = (    (e3='0123456789|'), e3.substr(0,e3.length-1)    );    
    //從第0個開始截取,截取長度為字符串的長度減2(相當於去掉尾部2個)
    var e4 = (    (e4='0123456789|'), e4.substr(0,e4.length-2)    );    
    //......
    //從第0個開始截取,截取長度為字符串的長度減M(相當於去掉尾部M個)
    var M
        eN = (    (eN='0123456789|'),(M=5), eN.substr(0,eN.length-M)    );    
    
    
    //從第0個開始截取,截取到尾(相當於作白用功,基本不這么調用!)
    var s1 = (    (s1='0123456789|'), s1.substr(0)    );
    //從第1個開始截取,截取到尾(相當於頭部去掉1個字符!)
    var s2 = (    (s2='0123456789|'), s2.substr(1)    );
    //從第2個開始截取,截取到尾(相當於頭部去掉2個字符!)
    var s3 = (    (s3='0123456789|'), s3.substr(2)    );
    //......
    //從第M個開始截取,截取長度為字符串的長度減M(相當於去掉頭部M個)
    var M
        sN = (    (sN='0123456789|'),(M=5), sN.substr(M)    );    
</script>

  如果要精簡點調用,那么:

<script>    
    
    //所以對於原字符串要去掉尾部M個字符時,可以如上掉用,或者:
    String.prototype.DeleteEnd = function(M) 
     { 
         return this.substr(0,this.length-M); 
      }
    
    //對於去掉前M個的,直接可使用:sN.substr(M)
    //當然,如果想對應於DeleteEnd,也可定義:
    String.prototype.DeleteFront = function(M) 
     { 
         return this.substr(M); 
      }
</script>

 統一一下形式,刪除以上的代碼,將其替換為如下:

<script>    
    //所以對於原字符串要去掉頭部M1個字符,又要去掉尾部M2個字符時,可以用:
    //用Delete命名比較簡潔,但用DeleteSides則比較現義
    String.prototype.Delete = String.prototype.DeleteSides = function(M1,M2) 
     { 
        return this.substr(0,this.length-M2).substr(M1);
      }
</script>


調用:

<script>
    var str1 = '0123456789|'.Delete(1,1);    //'123456789'
    var str2 = '0123456789|'.Delete(0,1);    //'0123456789'
    var str2 = '0123456789|'.Delete(1,0);    //'123456789|'
    var str2 = '0123456789|'.Delete(2,3);    //'234567'
</script>

一般使用Delete擴展函數就可以了(注意擴展函數都以大寫命名,區別於原有的函數)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM