有谁知道这两种方法有什么区别?
String.prototype.slice
String.prototype.substring
slice()
工作方式与几种不同的行为类似。substring()
Syntax: string.slice(start, stop);
Syntax: string.substring(start, stop);
它们的共同点:
start
stop
stop
区别: substring()
start > stop
substring
NaN
0
区别: slice()
start > stop
slice()
""
)start
substr()
stop
string.length – Math.abs(stop)
Math.max(0, string.length + stop)
来源:基本的编程艺术与开发:Javascript:substr() v.s. substring()
slice()
substr()
否则,请继续阅读以进行完整比较
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()==substr()==substring()
slice()
选择从字符串末尾开始的字符substr()
选择从字符串末尾开始的字符substring()
不执行注意#4:slice()==substr()
slice()
不执行substr()
由于第二个参数不是位置,而是长度值,因此它将像往常一样执行,没有问题substring()
将交换两个参数,并照常执行slice()
必填;起始索引substr()
必填;起始索引substring()
必填;起始索引注意#5:slice()==substr()==substring()
slice()
自选;结束提取的位置(最多但不包括)substr()
自选;要提取的字符数substring()
自选;结束提取的位置(最多但不包括)注意#6:slice()==substring()
slice()
选择从字符串的起始位置到末尾的所有字符substr()
选择从字符串的起始位置到末尾的所有字符substring()
选择从字符串的起始位置到末尾的所有字符注意#7:slice()==substr()==substring()
所以,你可以说 和 之间存在差异,而 基本上是 的副本。slice()
substr()
substring()
slice()
如果需要 的功能:substr
"foobarbaz".substr(index, length);
不使用已弃用的功能,您只需执行以下操作:
"foobarbaz".substring(index, length + index);
并获得完全相同的结果,在所有边缘情况下,例如负索引/长度。
Ben Nadel 为此写了一篇很好的文章,他指出了这些函数参数的差异:
String.slice( begin [, end ] )
String.substring( from [, to ] )
String.substr( start [, length ] )
他还指出,如果要切片的参数为负数,则它们从末尾引用字符串。子字符串和子字符串没有。
这是他关于这个的文章。
模板简介:该模板名称为【 JavaScript 中 String.slice 和 String.substring 有什么区别?】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【JavaScript】栏目查找您需要的精美模板。