目录

Js字符串截取函数

1 slice()方法

1.1 定义和用法

slice() 方法可从已有的数组或字符串中返回选定的元素。

1.2 语法

arrayObject.slice(start,end)

start: 必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。

end: 可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。

1.3 返回值

返回一个新的数组或字符串,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。

1.4 例子

var string = 'abcdefghijklmn';
string.slice(2);			//"cdefghijklmn"
string.slice(2,5);		//"cde"
string.slice(-6,7);		//""
string.slice(-6,12);	//"ijkl"
string.slice(-6,-5);	//"i"
string.slice(1,1);		//""

var array = [0,1,2,3,4,5,6,7,8,9];
array.slice(2);			//[2, 3, 4, 5, 6, 7, 8, 9]
array.slice(2,5);			//[2, 3, 4]
array.slice(-6,6);		//[4, 5]
array.slice(-6,3);		//[]
array.slice(-6,-5);		//[4]
array.slice(1,1);			//[]

2 substring()方法

1.1 定义和用法

substring() 方法用于提取字符串中介于两个指定下标之间的字符。

1.2 语法

stringObject.substring(start,stop)

start: 必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。

stop: 可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。 如果省略该参数,那么返回的子串会一直到字符串的结尾。

1.3 返回值

一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是从 start 处到 stop-1 处的所有字符,其长度为 stop 减 start。

1.4 说明

substring() 方法返回的子串包括 start 处的字符,但不包括 stop 处的字符。

如果参数 start 与 stop 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。如果 start 比 stop 大,那么该方法在提取子串之前会先交换这两个参数。

1.5 例子

var string = 'abcdefghijklmn';
string.substring(2);			//"cdefghijklmn"
string.substring(2,5);			//"cde"
string.substring(-6);			//"abcdefghijklmn"
string.substring(-6,7);		//"abcdefg"
string.substring(-6,12);		//"abcdefghijkl"
string.substring(-6,-5);		//""
string.substring(1,1);			//""
string.substring(6,1);			//"bcdef"

3 substr()方法

1.1 定义和用法

substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。

1.2 语法

stringObject.substr(start,length)

1.3 返回值

一个新的字符串,包含从 stringObject 的 start(包括 start 所指的字符) 处开始的 length 个字符。如果没有指定 length,那么返回的字符串包含从 start 到 stringObject 的结尾的字符。

1.4 例子

var string = 'abcdefghijklmn';
string.substr(2);				//"cdefghijklmn"
string.substr(2,5);			//"cdefg"
string.substr(-6);			//"ijklmn"
string.substr(-6,2);		//"ij"
string.substr(-6,-5);		//""
string.substr(1,1);			//"b"
string.substr(6,1);			//"g"

4 以上三个函数的区别

  1. slice()方法和substr()方法可使用负值从数组的尾部选取元素。而substring()方法不接受负的参数。
  2. slice()方法和substring()方法若传入的两个参数都是相同的话,则该方法返回的就是一个空串(即长度为 0 的字符串)。
  3. substring()方法若start 比 stop 大,那么该方法在提取子串之前会先交换这两个参数。
  4. slice()方法返回的结果是从start到end-1。
  5. substring()方法返回的结果是从start到stop-1处的所有字符,若start为负数,则start为0,其长度为 stop 减 start。
  6. substr()方法返回的结果是从start处开始的 length 个字符。
  7. 前面两个方法的传入参数是字符串的开始位置和结束位置;后面一个方法的传入参数字符串的开始位置和需要截取的长度,此方法可用于需要截取固定字符串长度的情况。
Loading Disqus comments...