首頁 >web前端 >js教程 >javascript中substring()、substr()、slice()的區別

javascript中substring()、substr()、slice()的區別

PHPz
PHPz原創
2016-05-16 15:41:291779瀏覽

在js中字元截取函數有常用的三個slice()、substring()、substr()了,下面我們來跟大家介紹slice()、substring()、substr()函數在字元截取時的一些用法與區別吧。

stringObject.substring(start,stop) 

用於擷取字串中介於兩個指定下標之間的字元。

start必需。一個非負的整數,規定要提取的子字串的第一個字元在 stringObject 中的位置。

stop可選。一個非負的整數,比要擷取的子字串的最後一個字元在 stringObject 中的位置多 1。如果省略該參數,那麼傳回的子字串會一直到字串的結尾。

start從0開始 到stop(不包含stop)結束 不接受負的參數。

stringObject.substr(start,length)

可在字串中抽取從start下標開始的指定數目的字元

start 必需。要抽取的子字串的起始下標。必須是數值。如果是負數,那麼此參數宣告從字串的尾部開始算起的位置。也就是說,-1 指字串中最後一個字符,-2 指倒數第二個字符,以此類推。

length 可選。子字串中的字元數。必須是數值。如果省略了該參數,那麼傳回從 stringObject 的起始位置到結尾的字符串。

stringObject.slice(start,end)

提取字串的某個部分,並以新的字串返回被提取的部分

start 要抽取的片斷的起始下標。如果是負數,則此參數規定的是從字串的尾部開始算起的位置。也就是說,-1 指字串的最後一個字符,-2 指倒數第二個字符,以此類推。

end 緊接著要抽取的片段的結尾的下標。若未指定此參數,則要擷取的子字串包括 start 到原始字串結尾的字串。如果該參數是負數,那麼它規定的是從字串的尾部開始算起的位置。

傳回新的字串包含字串stringObject 從start 開始(包括start)到end 結束(不包括end)為止的所有字元

string.slice()
string.substring()
string.substr()
 
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”

三者如果只有一個參數n 則會從第n個位置開始回傳剩餘字串(從0開始計算位置)

如果有兩個參數n,m,slice與substring會從第n個位置開始回到第m個位置(不包括第m位置)的字串,而substr會傳回從第n個位置開始的m個字元。

string.slice()
string.substring()
string.substr()
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));       //”"(空字符串)

當參數是負值情況下,slice將傳入負值與字串長度(string.length)相加,substr會將負的第一個參數加上字串長度,第二個轉換為0,substring會將所有負值轉換成0。

IE的JavaScript實作在處理向substr()方法傳遞負值的情況時存在問題,它會傳回原始的字串。

以上就是本章的全部內容,更多相關教學請訪問JavaScript影片教學

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn