常用笔记: 与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扩展函数就可以了(注意扩展函数都以大写命名,区别于原有的函数)

 

你可能感兴趣的:(substr)