javascript中substr,substring,slice.splice的區別說明

來源:互聯網
上載者:User

substr() 方法可在字串中抽取從 start 下標開始的指定數目的字元.

stringObject.substr(start,length);start必須,length可選.

start 是截取的開始位置的下標,從0開始算起,必須是數字.可以是負數,-1是倒數第一個字元,-2是倒數第二個字元,以此類推.

length 是要截取的字元的長度,必須是數字.如果未指定,則從start位置處開始截取到字串結尾.

substr 指定的是字串的開始下標跟截取長度,所以可以替代substring跟slice使用.

重要事項:ECMAscript 沒有對該方法進行標準化,因此反對使用它。

substring() 方法用於提取字串中介於兩個指定下標之間的字元。

stringObject.substring(start,end);start必須,end可選.

start 是截取的開始位置的下標,從0開始算起,必須是非負數字.(w3c說必須是非負整數,實驗了下,不是整數也可以.)

end 必須是數字.如果未指定,則從start位置處開始截取到字串結尾.

注意事項:substring截取的字元不包括end處的字元.所以截取的長度為end-start.

start=end的話,返回Null 字元串,長度為0.

重要事項:substring不接收負的參數,slice和substr可以.

slice() 方法可提取字串的某個部分,並以新的字串返回被提取的部分。

stringObject.slice(start,end);start必須,end可選.

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

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

splice() 方法用於插入、刪除或替換數組的元素。

arrayObject.splice(index,howmany,element1,.....,elementX)index,howmany必須,其他可選.

index 規定從何處添加/刪除元素。該參數是開始插入和(或)刪除的數組元素的下標,必須是數字。

howmany 規定應該刪除多少元素。必須是數字,但可以是 "0"。如果未規定此參數,則刪除從 index 開始到原數組結尾的所有元素。

element1 規定要添加到數組的新元素。從 index 所指的下標處開始插入。

elementx 可向數組添加若干元素。

注釋:請注意,splice() 方法與 slice() 方法的作用是不同的,splice() 方法會直接對數組進行修改。

所有提示:某些情況下,負數的參數不識別.所以盡量不要用負數作參數.免得瀏覽器不相容,造成程式的出錯.

這是JavaScript 權威指南上的說明,象我這種E文很爛的就能勉強看懂一下,並沒有對著翻譯,只是按照理解說明了下。

string.substring(from, to)

Arguments

from

A nonnegative integer that specifies the position within string of the first character of the desired substring.

指定想要得到字串的開始位置,即索引(非負整數)

to

A nonnegative optional integer that is one greater than the position of the last character of the desired substring. If this argument is omitted, the returned substring runs to the end of the string.

指定想要得到字串的結束位置,不包括該位置的字元(非負整數,可選,沒有指定則返回從指定開始位置到原字串結束位置)

string.slice(start, end)

Arguments

start

The string index where the slice is to begin. If negative, this argument specifies a position measured from the end of the string. That is, -1 indicates the last character, -2 indicates the second from last character, and so on.

指定想要得到字串的開始的位置,即索引。

end

The string index immediately after the end of the slice. If not specified, the slice includes all characters from start to the end of the string. If this argument is negative, it specifies a position measured from the end of the string.

指定想要得到字串的結束位置,不包括該位置的字元(可選,沒有指定則返回從指定開始位置到原字串結束位置)

string.substr(start, length)

Arguments

start

The start position of the substring. If this argument is negative, it specifies a position measured from the end of the string: -1 specifies the last character, -2 specifies the second-to-last character, and so on.

指定想要得到字串的開始的位置,即索引。

length

The number of characters in the substring. If this argument is omitted, the returned substring includes all characters from the starting position to the end of the string.

指定想要得到字串的長度,(可選,沒有指定則返回從指定開始位置到原字串結束位置)

PS:這三個方法均返回截取原字串的一部分新字串,第2個參數均為選擇性參數,並且其實所有的參數均可以為負整數。

string.substring(from, to)
string.slice(start, end)

這兩個方法差不多,都是指定開始和結束位置返回新字串,在參數均為正整數的時候返回結果一樣,當參數為負整數的時候,string.substring(from, to) 把負整數都當作0處理,而 string.slice(start, end) 將把負整數加上該字串的長度處理。

string.substr(start, length)

這個方法只在第二個參數上指定的是新字串的長度,對於負正數和string.slice(start, end)處理一樣,把負整數加上原字串的長度。
Example

複製代碼 代碼如下:var s = "abcdefg";

s.substring(1,4) // Returns "bcd"
s.slice(1,4) // Returns "bcd"
s.substr(1,4) // Returns "bcde"

s.substring(2,-3) // Returns "ab" 實際上是 s.substring(0,2) 較小的參數會在前面
s.slice(2,-3) // Returns "cd" 實際上是 s.slice(2,4)
s.substr(2,-3) // Returns "cdef" 實際上是 s.slice(2,4)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.