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>