首页 > 代码库 > 常用笔记: 与VBS当中的Mid()类似的substr()小记

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

 

常用笔记: 与VBS当中的Mid()类似的substr()小记