首页 > JavaScript >  JavaScript 中 String.slice 和 String.substring 有什么区别?

 JavaScript 中 String.slice 和 String.substring 有什么区别?

上一篇 下一篇

有谁知道这两种方法有什么区别?

String.prototype.slice
String.prototype.substring

分割线

网友回答:

slice()工作方式与几种不同的行为类似。substring()

Syntax: string.slice(start, stop);
Syntax: string.substring(start, stop);

它们的共同点:

  1. 如果等于:返回一个空字符串startstop
  2. 如果省略:提取字符串末尾的字符stop
  3. 如果任一参数大于字符串的长度,则将改用字符串的长度。

区别: substring()

  1. 如果 ,则将交换这两个参数。start > stopsubstring
  2. 如果任一参数为负数或 为 ,则将其视为 。NaN0

区别: slice()

  1. 如果 ,将返回空字符串。(start > stopslice()"")
  2. 如果为负数:从字符串末尾设置字符,与在 Firefox 中完全相同。在Firefox和IE中都可以观察到这种行为。startsubstr()
  3. 如果为负数:将 stop 设置为:(原始值),但 ECMA 规范中限定为 0(因此为 )除外。stopstring.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)

注意#1slice()==substring()

它做什么?

  • slice()提取字符串的各个部分,并在新字符串中返回提取的部分。
  • substr()提取字符串的各个部分,从指定位置的字符开始,并返回指定的字符数。
  • substring()提取字符串的各个部分,并在新字符串中返回提取的部分。

注意#2slice()==substring()

更改原始字符串?

  • slice()
  • substr()
  • substring()

注意#3slice()==substr()==substring()

使用负数作为参数

  • slice()选择从字符串末尾开始的字符
  • substr()选择从字符串末尾开始的字符
  • substring()不执行

注意#4slice()==substr()

如果第一个参数大于第二个参数

  • slice()不执行
  • substr()由于第二个参数不是位置,而是长度值,因此它将像往常一样执行,没有问题
  • substring()将交换两个参数,并照常执行

第一个参数

  • slice()必填;起始索引
  • substr()必填;起始索引
  • substring()必填;起始索引

注意#5slice()==substr()==substring()

第二个论点

  • slice()自选;结束提取的位置(最多但不包括)
  • substr()自选;要提取的字符数
  • substring()自选;结束提取的位置(最多但不包括)

注意#6slice()==substring()

如果省略第二个参数怎么办?

  • slice()选择从字符串的起始位置到末尾的所有字符
  • substr()选择从字符串的起始位置到末尾的所有字符
  • substring()选择从字符串的起始位置到末尾的所有字符

注意#7slice()==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】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 193次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 04-07
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
企业网站 单页式简历模板 自适应 html5 微信素材 微信图片 微信模板 响应式 微信文章 微信公众平台
您可能会喜欢的其他模板