字符串的截取方法slice/substring/substr的區別


這三個方法都會返回被操作字符串的一個子字符串,而且也都接受一或兩個參數。第一個參數指定子字符串的開始位置,第二個參數(在指定的情況下)表示子字符串到哪里結束。具體來說,slice()和substring()的第二個參數指定的是子字符串最后一個字符后面的位置。而 substr()的第二個參數指定的則是返回的字符個數。如果沒有給這些方法傳遞第二個參數,則將字符串的長度作為結束位置。與concat()方法一樣,slice()、substr()和 substring()也不會修改字符串本身的值——它們只是返回一個基本類型的字符串值,對原始字符串沒有任何影響。請看下面的例子。

var stringValue = "hello world"; 
alert(stringValue.slice(3)); //"lo world" 
alert(stringValue.substring(3)); //"lo world" 
alert(stringValue.substr(3)); //"lo world" 
alert(stringValue.slice(3, 7)); //"lo w" 
alert(stringValue.substring(3,7)); //"lo w" 
alert(stringValue.substr(3, 7)); //"lo worl"

在傳遞給這些方法的參數是負值的情況下,它們的行為就不盡相同了。其中,slice()方法會將傳入的負值與字符串的長度相加,substr()方法將負的第一個參數加上字符串的長度,而將負的第二個參數轉換為 0。最后,substring()方法會把所有負值參數都轉換為 0。下面來看例子。

var stringValue = "hello world"; 
alert(stringValue.slice(-3)); //"rld" 
alert(stringValue.substring(-3)); //"hello world" 
alert(stringValue.substr(-3)); //"rld" 
alert(stringValue.slice(3, -4)); //"lo w" 
alert(stringValue.substring(3, -4)); //"hel" 
alert(stringValue.substr(3, -4)); //""(空字符串)
 
 
  截取字符串最后一位:
var stringValue = "hello world";
stringValue.slice(-1);  //d
stringValue.substring(stringValue.length-1);  //d
stringValue.substr(-1);  //d

注:IE 的 JavaScript 實現在處理向 substr()方法傳遞負值的情況時存在問題,它會返回原始的字符串。IE9 修復了這個問題。

 
 
 
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM