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条经验 获得超12个赞
注意:如果你赶时间,和/或寻找简短的答案滚动到答案的底部,并阅读最后两行。如果不是匆忙阅读整个事情。
首先让我陈述一下事实:
语法: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()
。
添加回答
举报