3 回答

TA貢獻1858條經驗 獲得超8個贊
slice()
像substring()
一些不同的行為一樣工作。
Syntax: string.slice(start, stop);Syntax: string.substring(start, stop);
他們有什么共同點:
如果
start
equalsstop
:返回一個空字符串如果
stop
省略:將字符提取到字符串的末尾如果任一參數大于字符串的長度,則將使用字符串的長度。
區別 :substring()
如果
start > stop
,那么substring
將交換這兩個參數。如果任一參數為負數或者是
NaN
,則將其視為是0
。
區別 :slice()
如果
start > stop
,slice()
將返回空字符串。(""
)如果
start
是否定的:從字符串的末尾設置char,就像substr()
在Firefox中一樣。在Firefox和IE中都觀察到此行為。如果
stop
是否定的:將stop設置為:(string.length – Math.abs(stop)
原始值),除非限制在0(因此,Math.max(0, string.length + stop)
),如ECMA規范中所述。
來源:編程與開發的基礎藝術:Javascript:substr()vs substring()

TA貢獻1842條經驗 獲得超13個贊
注意:如果你趕時間,和/或尋找簡短的答案滾動到答案的底部,并閱讀最后兩行。如果不是匆忙閱讀整個事情。
首先讓我陳述一下事實:
語法:string.slice(start,end)
string.substr(start,length)
string.substring(start,end)
注意#1:slice()==substring()
它能做什么?
該slice()
方法提取字符串的一部分,并以新字符串形式返回提取的部分。
該substr()
方法從指定位置的字符開始提取字符串的一部分,并返回指定數量的字符。
該substring()
方法提取字符串的一部分,并以新字符串形式返回提取的部分。
筆記2:slice()==substring()
更改原始字符串?slice()
不substr()
不substring()
不
注3:slice()==substring()
使用負數作為參數:slice()
選擇從字符串末尾開始的字符substr()
選擇從字符串末尾開始的字符substring()
不執行
注意#3:slice()==substr()
如果第一個參數大于第二個:slice()
不執行,substr()
因為第二個參數不是一個位置,而是長度值,它會像往常一樣執行,沒有任何問題substring()
會交換這兩個參數,并像往常一樣執行
第一個參數:slice()
必需,表示:起始索引substr()
必需,表示:起始索引substring()
必需,表示:起始索引
注4:slice()==substr()==substring()
第二個參數:slice()
可選,位置(最多但不包括)結束提取的位置可選,substr()
要提取的字符數substring()
可選,位置(最多但不包括)結束提取的位置
注意#5:slice()==substring()
如果第二個論點被省略怎么辦?slice()
選擇從字符串的起始位置到結尾的substr()
所有字符選擇從字符串的起始位置到結尾的substring()
所有字符選擇從字符串的起始位置到結尾的所有字符
注意#6:slice()==substr()==substring()
所以,你可以說slice()
和之間存在差異substr()
,而substring()
基本上是副本slice()
。
在摘要中:
如果您知道要停止的索引(位置)(但不包括),請slice()
在知道要提取的字符長度時使用substr()
。
添加回答
舉報