zoukankan      html  css  js  c++  java
  • JavaScript 字符串方法之 substr、 substring、 slice

    1.字符串的substr(startIndex,num)方法:开始下标,字符个数
    // (第一个参数起始下标,(1)为负值时,视作length+负值,(2)超过最大下标时找不到多余字符)
    // (第二个参数字符个数,(1)为负值视作0,即从指定开始下标开始,找0个字符,(2)超过字符串下标时找不到多余字符)
     var s="abcde01234xyz";
    
     console.log(s.substr(1,22));  //bc //从定开始下标1开始,找2个字符。
     // (第一个参数起始下标,(1)为负值时,视作length+负值,(2)超过最大下标时找不到多余字符)
     // (第二个参数字符个数,(1)为负值视作0,即从指定开始下标开始,找0个字符,(2)超过字符串下标时找不到多余字符)
    
     console.log(s.substr(1,-2));   //  //第二个参数为负值视作0,从指定开始下标开始,找0个字符
    
     console.log(s.substr(-3,2));   //xy  //第一个参数为负值,从下标为(length+负值)开始,找2个字符
    
     console.log(s.substr(-3,3));  //xyz  //第一个参数为负值,从下标为(length+负值)开始,找3个字符
    
     console.log(s.substr(-3,4));   //xyz  //第一个参数为负值,从下标为(length+负值)开始,找3个字符
    
     console.log(s.substr(-3,5));   //xyz  //第一个参数为负值,从下标为(length+负值)开始,找3个字符
    
    

      

    2.字符串的substring(startIndex,endIndex)方法:开始下标到指定结束下标的前一个
     参数为负值看做参数为0,
    从小的参数下标找向大的参数下标前面一个(即两个参数可以交换位置),下标过大或者过小找不到多余字符
    只有一个参数时,看做开始参数下标找到最后一个元素
    var s="abcde01234xyz";
    
     //    参数为负值看做参数为0,从小的下标找向大的下标前面一个
    
     console.log(s.substring(1,2));  // b //从定开始下标1开始,到指定结束下标的前一个元素(从小的下标找向大的下标前一个)
    
     console.log(s.substring(-5,2));  // ab //第一个参数为负值看做下标为0,到指定结束下标的前一个元素
    
     console.log(s.substring(1,-2));  //a //第二个参数为负值看做下标为0,从小的下标找向大的下标前一个
    
     console.log(s.substring(2,-2)); //ab //第二个参数为负值看做下标为0, 从小的下标找向大的下标前一个
    
     console.log(s.substring(3,-2));  //abc //第二个参数为负值看做下标为0, 从小的下标找向大的下标前一个
    
     console.log(s.substring(4,-2)); //abcd//第二个参数为负值看做下标为0 从小的下标找向大的下标前一个
    
    console.log(s.substring( 4,16)); //e01234xyz// 找不到多余字符
    
    
    

      

     
    
    
    3.字符串的slice(startIndex,endIndex)方法:开始下标到指定结束下标的前一个
    //参数负值,看做length+负值
    //第一个参数或者第二个参数为负值时,该参数相对于(length+负值)即负值,循环字符串 // 多余字符找不到

    //只有一个参数时,看做开始参数下标找到最后一个元素
     
         // slice       参数负值,看做length+负值
        //第一个参数或者第二个参数为负值时,该参数相对于(length+负值)即负值,循环字符串
        /!*  a b c d e 0 1 2 3 4 x y z a b c d e 0 1 2 3 4 x y z
         -2 -1 0 1 2 3 4 5 6 7 8 9 ……
         *!/
    
         var s="abcde01234xyz";
     
        console.log(s.slice(1,2));  // b          //从指定开始下标1开始,到指定结束下标2的前一个元素
    
        console.log(s.slice(1,0));  //            // //从指定开始下标1开始,到指定结束下标0的前一个元素
    
        console.log(s.slice(1,-1));  // bcde01234xy  //从指定开始下标1开始,到(length+负值)结束下标的前一个元素
    
        console.log(s.slice(1,-2));  // bcde01234x  //从指定开始下标1开始,到(length+负值)结束下标的前一个元素
    
        console.log(s.slice(-5,12));  //   34xy     //从指定开始下标(length+负值)开始,到结束下标的前一个元素
    
        console.log(s.slice(-6,12));  //  234xy    //从指定开始下标(length+负值)开始,到结束下标的前一个元素
    
        console.log(s.slice(-6,13));  //  234xyz    //从指定开始下标(length+负值)开始,到结束下标的前一个元素
    
        console.log(s.slice(-6,15));  //  234xyz    //从指定开始下标(length+负值)开始,到结束下标的前一个元素(多余字符找不到)
    
        console.log(s.slice(-6,16));  //  234xyz    //从指定开始下标(length+负值)开始,到结束下标的前一个元素(多余字符找不到)
    
    
    

      

     
  • 相关阅读:
    gets_s()函数的参数太少,strcpy_s():形参和实参 2 的类型不同,等c函数在Visual Studio上出现的问题, get()函数和scanf()读取字符串的区别,栈的随机性
    线性表的顺序存储实现
    汉诺塔问题, 用递归方法求集合中的中位数
    共用体union
    洛谷3384:【模板】树链剖分——题解
    BZOJ4196:[NOI2015]软件包管理器——题解
    BZOJ3140:[HNOI2013]消毒——题解
    BZOJ1059:[ZJOI2007]矩阵游戏——题解
    洛谷4277:萃香的请柬——题解
    BZOJ1854:[SCOI2010]连续攻击游戏——题解
  • 原文地址:https://www.cnblogs.com/July-/p/5765099.html
Copyright © 2011-2022 走看看