1. 程式人生 > 其它 >JS字串擷取方法彙總(slice、substring、substr等)

JS字串擷取方法彙總(slice、substring、substr等)

在開發中常常會需要擷取字串,而JavaScript提供了很多種方法實現擷取操作。本文對各種方法做個整理,供大家參考。

一、使用 slice() 擷取

1,函式說明

slice()方法可通過指定的開始和結束位置,提取字串的某個部分,並以新的字串返回被提取的部分。語法如下:

1

stringObject.slice(start, end)

引數說明:

  • start(必需):規定從何處開始選取。如果是負數,那麼它規定從字串尾部開始算起的位置。也就是說,-1指最後一個字元,-2指倒數第二個字元,以此類推。
  • end(可選):規定從何處結束選取,即結束處的字元下標。如果沒有指定該引數,那麼擷取的字串包含從start到結束的所有字元。如果這個引數是負數,那麼它規定的是從陣列尾部開始算起的字元。

2,使用樣例

1

2

3

4

5

6

7

8

9

10

11

varstr ="0123456789";

console.log("原始字串:", str);

console.log("從索引為3的字元起一直到結束:", str.slice(3));//3456789

console.log("從倒數第3個字元起一直到結束:", str.slice(-3));//789

console.log("從開始一直到索引為5的前一個字元:", str.slice(0,5));//01234

console.log("從開始一直到倒數第3個字元的前一個字元:", str.slice(0,-3));//0123456

console.log("從索引為3的字元起到索引為5的前一個字元:", str.slice(3,5));//34

console.log("從索引為3的字元起到倒數第3個字元的前一個字元:", str.slice(3,-3));//3456

執行結果如下:

二、使用 substring() 擷取

1,函式說明

(1)substring方法用於提取字串中介於兩個指定下標之間的字元。語法如下:

1

stringObject.substring(start, stop)

引數說明:

  • start(必需):一個非負的整數,規定要提取的子串的第一個字元在stringObject中的位置。
  • stop(可選):一個非負的整數,比要提取的子串的最後一個字元在stringObject中的位置多1。


返回值說明:
該方法返回一個新的字串,該字串值包含stringObject的一個子字串,其內容是從start處到stop-1處的所有字元,其長度為stop減start。


(2)注意事項:

  • 如果start與end相等,那麼該方法返回的就是一個空串(即長度為0的字串)。
  • 如果start比end大,那麼該方法在提取子串之前會先交換這兩個引數。
  • 如果start或end為負數,那麼它將被替換為0。

2,使用樣例

1

2

3

4

5

6

7

8

9

varstr ="0123456789";

console.log("原始字串:", str);

console.log("從索引為3的字元起一直到結束:", str.substring(3));//3456789

console.log("從索引為20的字元起一直到結束:", str.substring(20));//

console.log("從索引為3的字元起到索引為5的前一個字元結束:", str.substring(3,5));//34

console.log("start比end大會自動交換,結果同上:", str.substring(5,3));//34

console.log("從索引為3的字元起到索引為20的前一個字元結束:", str.substring(3,20));//3456789

執行結果如下:

三、使用 substr() 擷取

1,函式說明

substr方法用於返回一個從指定位置開始的指定長度的子字串。語法如下:

1

stringObject.substr(start, length)

start(必需):所需的子字串的起始位置。字串中的第一個字元的索引為0。
length(可選):在返回的子字串中應包括的字元個數。


(2)注意事項:

  • 如果length為0或負數,將返回一個空字串。
  • 如果沒有指定length,則子字串將延續到stringObject的最後。
  • 如果start或length為負數,那麼它將被替換為0。

2,使用樣例

1

2

3

4

5

6

7

8

varstr ="0123456789";

console.log("原始字串:", str);

console.log("從索引為3的字元起一直到結束:", str.substr(3));//3456789

console.log("從索引為20的字元起一直到結束:", str.substr(20));//

console.log("從索引為3的字元起擷取長度為5的字串:", str.substr(3,5));//34567

console.log("從索引為3的字元起擷取長度為20的字串:", str.substr(3,20));//3456789

執行結果如下:

附:其他一些常用的方法

下面這些函式可以輔助我們進行字串的擷取工作。

1,indexOf()

返回字串中匹配子串的第一個字元的下標。

1

2

3

4

5

6

7

8

9

10

11

varstr ="JavaScript";

vari1 = str.indexOf("a");//1

vari2 = str.indexOf("S");//4

vari3 = str.indexOf("Script");//4

vari4 = str.indexOf("k");//-1

console.log("原始字串:", str);

console.log("a的索引:", i1);

console.log("S的索引:",i2);

console.log("Script的索引:",i3);

console.log("k的索引:",i4);

執行結果如下:

2,lastIndexOf()

該方法返回從右向左出現某個字元或字串的首個字元索引值(與indexOf相反)

1

2

3

4

5

varstr ="JavaScript";

vari1 = str.lastIndexOf("a");//3

vari2 = str.lastIndexOf("S");//4

vari3 = str.lastIndexOf("Script");//4

vari4 = str.lastIndexOf("k");//-1

3,split()

使用一個指定的分隔符把一個字串分割儲存到陣列。

1

2

3

varstr ="jpg|bmp|gif|ico|png";

vararr= str.split("|");

console.log(arr);

執行結果如下:

4,join()

使用一個指定的分隔符將一個數組合併為一個字串。

1

2

3

vararr=newArray("jpg","bmp","gif","ico","png");

varstr = arr.join("|");

console.log(str);

執行結果如下:

5,concat()

將兩個陣列連線在一起。

1

2

3

4

vararr1 = [1, 2, 3];

vararr2 = [4, 5, 6];

vararr3 = arr1.concat(arr2);

console.log(arr3);

執行結果如下:

6,charAt()

返回指定位置的字元。字串中第一個字元的下標是0。如果引數index不在0與string.length之間,該方法將返回一個空字串。

1

2

3

varstr ="abcdefg";

varchar = str.charAt(2);//c

console.log(char);

執行結果如下:


轉自:http://www.hangge.com/blog/cache/detail_1887.html