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

  • 相关阅读:
    delphi 鼠标拖动
    Tesseract-ocr 工具使用记录
    在dcef3当中执行js代码并获得返回值
    idhttp提交post带参数并带上cookie
    新制作加热块
    java 调用oracle 分页存储过程 返回游标数据集
    JDBC链接
    ------------浪潮之巅读后感---------------
    价值观作业
    --------关于C语言的问卷调查-----------
  • 原文地址:https://www.cnblogs.com/dreamyoung/p/4074117.html
Copyright © 2011-2022 走看看