14.1.4 使用slice()提取一个字符串的部分

要提取一个字符串的一部分,可以使用slice()方法。这个方法返回一个字符串的一部分。例如,假设你有一个类似http://www.sawmac.com的字符串,并且想要删除http://部分。做到这点的一种方法就是提取字符串中http://之后的每一个字符,如下所示:


var url='http://www.sawmac.com';

var domain=url.slice(7);//www.sawmac.com


slice()方法要求一个数字,表示提取的字符串的开始的索引位置(参见图14-2)。在这个例子中是url.slice(7),7表示字符串的第8个字母(记住,第一个字母位于位置0)。该方法返回了从指定的索引位置开始到字符串结束的所有字符。

14.1.4 使用slice()提取一个字符串的部分 - 图1

图 14-2 如果没有为slice()方法提供第二个参数,它只是从指定位置(在这个例子中是7)一直到字符串的末尾提取一个字符串

也可以通过给slice()提供第二个参数,从一个字符串中提取指定数目的字符。slice()方法的基本结构如下:


string.slice(start, end);


start值是一个数字,表示要提取的字符串的第一个字符。End值有点容易令人混淆,它不是提取的字符串的最后一个字母,它实际上是最后一个字母的位置+1。例如,如果我们想要提取字符串'To be, or not to be'的前5个字母,我们将第一个参数指定为0,将第二个参数指定5。正如你在图14-3中看到的,0是字符串的第一个字母,而5是第6个字母,但是,指定的最后一个字母不会从字符串中提取。换句话说,第二个参数指定的字符不是提取的字符串的一部分。

提示:如果你想要从一个字符串提取特定数目的字符,只要用该数字加上开始的值就行了。例如,如果你想要获取一个字符串的前10个字母,第一个参数应该是0(第一个字母),最后一个参数应该是0+10或者10:slice(0,10)。

你也可以指定一个负数,例如,quote.slice(-6,-1)。负数表示从字符串的末尾开始往回计数,如图14-3所示。

14.1.4 使用slice()提取一个字符串的部分 - 图2

图 14-3 slice()方法提取一个字符串的一部分。实际的字符串不会有任何变化。例如,在这个例子中,quote变量中包含的字符串并不会被quote.slice(0,5)改变。这个方法直接返回了提取的字符串,我们可以将其存储到一个变量中,显示在一个警告框中,甚至作为一个参数传递给一个函数

提示:如果你想要提取一个字符串,它包含了从字符串末尾倒数第6个字母,一直到字符串结束的所有字符,那么,可以省略掉第二个参数:


quote.slice(-6);