浅谈Javascript中substr和substring的区别

  作者:bea

由于在项目中有需要对字符串进行截取,然后手残使用了IDE自动提示的substr,没想那么多以为substr和substring没多大区别。 然而并不是,且听我一一道来。 1. substr(index, length) 从起始索引号提取字符串中指定数目的字符。 substr方法可以传入两个参数 index和length。index是起始位,length是截取的长度。 当index是个非负整数时: a. 如果不传入参数,则得到的还是字符串本身。 如: "abcdefg

 由于在项目中有需要对字符串进行截取,然后手残使用了IDE自动提示的substr,没想那么多以为substr和substring没多大区别。


然而并不是,且听我一一道来。


1. substr(index, length)


  从起始索引号提取字符串中指定数目的字符。


  substr方法可以传入两个参数 index和length。index是起始位,length是截取的长度。


  当index是个非负整数时:


    a. 如果不传入参数,则得到的还是字符串本身。


        如: "abcdefg".substr() -> "abcdefg"


    b. 如果只传入一个参数,即index,则默认截取到字符串最后一位。


        如: "abcdefg".substr(2) -> "defg".


  当index是个负整数时:


    c. 如果传入一个负整数下标位则从后往前数,起始位为1,到达负整数绝对值的下标位,截取则是从前往后。


        如: "abcdefg".substr(-2) -> "fg"  <=> "abcdefg".substr(-2 + "abcdefg".length)


2. substring(start, end)


  提取字符串中介于两个指定下标之间的字符。


  substring也是传入两个参数,但是这两个参数都是下标数字,下标从0开始计算,截取的长度是这两个下标的差


  可以记作"含头不含尾"


  如: "abcdefg".substring(2,4) -> "cd"




有用  |  无用

猜你喜欢