• javascript中String 对象slice 和substring 区别


     

    1、slice(start,stop)和substring(start,stop)  方法都是用于提取字符串中从start开始到stop-1间的字符(因为字符串索引是从0开始)。其中 start必选,stop可选。

    2、现在主要讲两者间的不同之处

      substring(start,stop):

        1. 当start等于stop时 返回空字符串。

        2.stop可选:如果省略该参数,那么返回的子串会一直到字符串的结尾。

        3.如果start>stop,substring 会交换着两个参数,即从end参数开始截取到start-1位置结束。

        4.如果start或者stop中任意一个值大于字符串长度(length),那么这个值将会被字符串的长度替换。替换后看是否满足条件3,满足则走继续第3步。

        5.如果start和stop中任意一个值为负数(<0)或者是NaN(非数字),那么这个值会当做0来处理。

      slice(start,stop):

        1. 当start等于stop时 返回空字符串,和substring是一样的效果。

        2.stop可选:如果省略该参数,那么返回的子串会一直到字符串的结尾。和substring一样效果。

        3.如果start>stop,slice不会交换着两个参数位置,而是直接返回空 “”。

        4.如果start或者stop中任意一个值大于字符串长度(length),那么这个值将会被字符串的长度替换。和substring一样效果。

        5. 如果start是负数(<0):那么截取字符串将会以字符串长基准,向前减start绝对值个字符串开始到stop处结束。
          eg: var str ="abcdef";var s1=str.slice(-5,3);console.info(s1)  //bc    从 6-5 开始到 3 处结束 ,6 为字符串长度=slice(1,3);

         如果end是负数:那么会替换stop为(length-1)-math.abs(stop);  

          eg: var str="abcdef";var s1=str.slice(1,-2);console.info(s1);  //bcd  从 1 开始 到 6-1 -2=3 处结束

    最后还有个 subStr(start.length)

     这个比较好区分,他 返回从start(包括 start 所指的字符) 处开始的 length 个字符,没指定length或者length大于字符串长度返回到结尾字串。

     

          

        

  • 相关阅读:
    LeetCode:Length of Last Word
    Team Queue(POJ 2259)
    LeetCode:Largest Rectangle in Histogram(update)
    bzoj4821 && luogu3707 SDOI2017相关分析(线段树,数学)
    luogu1438无聊的数列(区间加等差数列,求一个数的和)
    luogu1081 开车旅行2012 D1T3 (倍增,set,O2)
    bzoj4094 && luogu3097 最优挤奶
    luogu3888 GDOI2014拯救莫里斯 (状压dp)
    noip2017D1T3逛公园(拓扑图上dp,记忆化搜索)
    bzoj1065 NOI2008奥运物流 (dp,树上背包,推式子)
  • 原文地址:https://www.cnblogs.com/kangaoxiaoshi/p/5096761.html
Copyright © 2020-2023  润新知