天天看點

JavaScript裡字元串的substr()和substring()參數問題

1. substr()方法:可在字元串中抽取從 start 下标開始的指定數目的字元。

文法

stringObject.substr(start,length)
參數 描述
start

必需。要抽取的子串的起始下标。必須是數值。如果是負數,那麼該參數聲明從字元串的尾部開始算起的位置。

也就是說,-1 指字元串中最後一個字元,-2 指倒數第二個字元,以此類推。

length

可選。子串中的字元數。必須是數值。

如果省略了該參數,那麼傳回從 stringObject 的開始位置到結尾的字串。

例1:

var str = "123456789";
document.write(str.substr(,));長度不可為負數,否則輸出為空。
document.write(str.substr(,));
document.write(str.substr());
document.write(str.substr(-,));
document.write(str.substr(-,));//小于-的數均按-算。
           
輸出均為:123456789

2.substring() 方法:用于提取字元串中介于兩個指定下标之間的字元。

文法

stringObject.substring(start,stop)
參數 描述
start 必需。一個非負的整數,規定要提取的子串在第一個字元在 stringObject 中的位置。
stop 可選。一個非負的整數,比要提取的子串的最後一個字元在 stringObject 中的位置多 1。如果省略該參數,那麼傳回的子串會一直到字元串的結尾。

傳回值

一個新的字元串,該字元串值包含 stringObject 的一個子字元串,其内容是從 start 處到 stop-1 處的所有字元,其長度為 stop 減 start。

說明

substring() 方法傳回的子串包括 start 處的字元,但不包括 end 處的字元。

如果參數 start 與 end 相等,那麼該方法傳回的就是一個空串(即長度為 0 的字元串)。

如果 start 比 end 大,那麼該方法在提取子串之前會先交換這兩個參數。

例2:

var str = "123456789";
document.write(str.substring(,));//注意:含頭不含尾。
document.write(str.substring(,));//先交換。
document.write(str.substring(,-));//先交換,-2按照0計算。
document.write(str.substring(,));
document.write(str.substring(-,));//start最小為0,小于0的按0計算。
           

輸出均為:123456789

總結:至少有一個正數。

繼續閱讀