1. 程式人生 > >JS擷取字串:slice(),substring()和substr()

JS擷取字串:slice(),substring()和substr()

JS提供三個擷取字串的方法,分別是:slice(),substring()和substr(),它們都可以接受一個或兩個引數:

一個引數時,三個方法都表示從引數值所示的開始位置一直擷取到字串末尾.

兩個引數時,

slice(),第一個引數代表開始位置,第二個引數代表結束位置的下一個位置,截取出來的字串的長度為第二個引數與第一個引數之間的差;若引數值為負數,則將該值加上字串長度後轉為正值;若第一個引數等於大於第二個引數,則返回空字串.

substring(),第一個引數代表開始位置,第二個引數代表結束位置的下一個位置;若引數值為負數,則將該值轉為0;兩個引數中,取較小值作為開始位置,截取出來的字串的長度為較大值與較小值之間的差.

substr(),第一個引數代表開始位置,第二個引數代表擷取的長度.

下面我們先來看個例子(注意:字串的位置從0開始):

<script language="javascript">
var stmp = "rcinn.cn";

//使用一個引數
alert(stmp.slice(3));//從第4個字元開始,擷取到最後個字元;返回"nn.cn"
alert(stmp.substring(3));//從第4個字元開始,擷取到最後個字元;返回"nn.cn"

//使用兩個引數
alert(stmp.slice(1,5))//從第2個字元開始,到第5個字元;返回"cinn"
alert(stmp.substring(1,5));//從第2個字元開始,到第5個字元;返回"cinn"

//如果只用一個引數並且為0的話,那麼返回整個引數
alert(stmp.slice(0));//返回整個字串
alert(stmp.substring(0));//返回整個字串

//返回第一個字元

alert(stmp.slice(0,1));//返回"r"
alert(stmp.substring(0,1));//返回"r"

//在上面的例子中我們可以看出slice()和substring()的用法是相同的,返回的值也是一樣的,但當引數為負數時,他們的返回值卻不一樣,看下面的例子
alert(stmp.slice(2,-5));//返回"i"
alert(stmp.substring(2,-5));//返回"rc"
//從上面兩個例子可以看出slice(2,-5)實際上是slice(2,3),負5加上字串長度8轉換成正3(若第一位數字等於或大於第二位數字,則返回空字串);而substring(2,-5)實際上是substring(2,0),負數轉換為0,substring總是把較小的數作為起始位置。

alert(stmp.substring(1,5))//從第2個字元開始,到第5個字元;返回"cinn"
alert(stmp.substr(1,5));//從第2個字元開始,擷取5個字元;返回"cinn."

</script>