在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影片教學!