substing和slice的完整語義和區別

2022-08-28 03:27:08 字數 2642 閱讀 4718

概述:

substring()返回字串兩個索引之間的值(或到字串末尾)的字串;

語法:

str.substring(indexa, indexb)

引數:

indexa、indexb都是乙個0到字串長度之間的整數;

描述:

substring提取從indexaindexb(不包括)之間的字元。特別地:

如果indexa大於indexb,則substring的執行效果就像兩個引數調換了一樣。例如,str.substring(1, 0) == str.substring(0, 1)

下例使用substring輸出字串 "mozilla" 中的字元:

//

假設 print 函式已被定義

var anystring = "mozilla";

//輸出 "moz"

console.log(anystring.substring(0,3));//從0到3位置構成的字串,但是3位置不包含;

console.log(anystring.substring(3,0));//如果indexa>indexb,indexa和indexb交換

//輸出 "mozill"

console.log(anystring.substring(0,6));

console.log(anystring.substring(0));//從0到最後位置全部擷取;

//輸出 "mozilla"

console.log(anystring.substring(0,7));

console.log(anystring.substring(0,10));

console.log(anystring.substring());//沒有引數就全部返回

slice()方法提取字串中的一部分,並返回這個新的字串。

string.slice(i, j)

i從該索引(以 0 為基數)處開始提取原字串中的字元。如果該引數為負數,則它表示從原字串中的倒數第幾個字元開始抽取,slice(-2)表示抽取了原字串中的倒數第二個字元到最後乙個字元(包含最後乙個字元)

j在該索引(以 0 為基數)處結束提取字串。如果省略該引數,slice會一直提取到字串末尾。如果該引數為負數,則它表示在原字串中的倒數第幾個字元結束抽取.。slice(-2, -1) 表示抽取了原字串中的倒數第二個字元到最後乙個字元(不包含最後乙個字元,也就是只有倒數第二個字元)。

slice不修改原字串,只會返回乙個包含了原字串中部分字元的新字串。

slice(1,4)提取了原字串中的第二個字元開始直到第四個字元的所有字元 (索引為 1, 2, 3的字元)。

str.slice(2, -1)提取第三個字元到倒數第二個字元。

//

假定存在乙個 print 函式

var str1 = "the morning is upon us.";

var str2 = str1.slice(4, -2);

print(str2);//morning is upon u

下面的這幾點和substring相同:

var bb="abc";

bb.slice(1);//bc 從1位置開始到末尾全部獲取

bb.slice(0,1);//a 從0為位置開始到1位置(1位置包含)

bb.slice();//abc 沒有引數則全部返回

1、substring中的引數可以互換,而slice中卻不可以,會自動認為字串不存在;

var  aa="hello world";

aa.substring(11,6);//

world

aa.slice(11,6);//

""

2、substring中的引數不能為負值,而slice中的兩個引數都可以為負值;

var  aa="hello world";

aa.substring(5,-1);//

"hello"

這裡的引數不能為負數,若為其中乙個負數會自動轉換為0,相當於aa.substring(5,0);然後引數又可以交換,最終變為aa.substring(0,5);

aa.substring(-1);//"hello world"相當於aa.substring(0);

aa.slice(5,-1);//

" worl" aa.slice(0,-1);//

"hello worl" aa.slice(-5,-1);//"worl"

aa.slice(-6,0);//""

slice和splice的區別

因為最近一段時間有些東西用的少了所以有點忘記了,今天就來說下我之前忘記的什麼是slice和splice slice 方法可從已有的陣列中返回選定的元素。必須寫,規定從何處開始尾部開始選取。如果是負數,那麼它規定從陣列尾部開始算起的位置。也就是說 1指最後乙個元素,2指倒數第二個元素,以此類推。可選,...

slice和splice的區別

一 slice slice是指在指定乙個陣列中的元素建立乙個新的陣列,即原陣列不會改變。slice引數 slice start,end slice方法,在string物件和array物件的用法很類似。對於陣列物件來說,slice 方法提取 從 start下標起 以end下標 為結尾的 一段元素 但不...

splice和slice的區別

都是對陣列進行擷取。slice不會改變原陣列,但是splice會直接改變原陣列。slice語法 array.slice start,end 引數 start 必需。起始元素,使用負數可從陣列結尾處規定位置。end 可選。截止元素 擷取不包含此元素 splice語法 array.splice inde...