js substring()与substr()的区别

亮术网 2020-06-25 本网原创

substring()与substr()都是用来提取指定的子字符串,它们有什么不同呢?先看它们的语法。

 

一、substring() 方法

1、格式:stringObject.substring(start [, stop]);

 

2、说明:

1)substring()的两个参数是start和stop,即表示提取字符串中介于两个指定下标之间的字符。

2)start是必需要有的参数,且大于等于0小于stringObject的长度;是待提取的子字符串的第一个字符在stringObject中的位置。

3)stop是可选参数,且大于等于0小于stringObject的长度;如果省略stop,则提取stringObject中的从start开始直到结尾的所有字符。

 

3、注意:

1)substring()包括start处的字符,但不包括stop处的字符。

2)若 start > stop,则在提取子字符串之前会自动先交换这两个参数。

3)若 start = stop,则返回一个空字符串。

4)若 start 或 stop 小0,则会被替换为0。

 

 

二、substr() 方法

1、格式:stringObject.substr(start [, length]);

 

2、说明:

1)substr()的两个参数是start和length,即表示提取从指定位置开始的指定长度的子字符串。

2)start是必需要有的参数,且大于等于0小于stringObject的长度;是待提取的子字符串的第一个字符在stringObject中的位置。

3)length是可选参数,且大于等于0小于stringObject的长度减start;如果省略length,则提取stringObject中的从start开始直到结尾的所有字符。

 

3、注意:

如果length为0或小于0,则返回一个空字符串。

 

 

三、实例如下:

var str = "abcdefghij";

alert(str.substring(0,3));//输出:abc
  alert(str.substr(0,3));//输出:abc

alert(str.substring(2,6));//输出:cdef
  alert(str.substr(2,6));//输出:cdefgh

alert(str.substring(3));//输出:defghij
  alert(str.substr(3));//输出:defghij