javascript - String.slice 和 String.substring 有什么区别?

标签 javascript substring slice substr

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

String.prototype.slice
String.prototype.substring

最佳答案

slice() 的工作方式与 substring() 类似,但有一些不同的行为。

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

它们的共同点:

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

区别 substring() :

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

区别 slice() :

  1. 如果 start > stopslice() 将返回空字符串。 ("")
  2. 如果 start 为负数:从字符串末尾设置 char,与 Firefox 中的 substr() 完全相同。在 Firefox 和 IE 中都可以观察到这种行为。
  3. 如果 stop 为负数:将 stop 设置为:string.length – Math.abs(stop)(原始值),但以 0 为界(因此,Math.max(0, string.length + stop)) 如 ECMA specification 中所述.

来源:Rudimentary Art of Programming & Development: Javascript: substr() v.s. substring()

关于javascript - String.slice 和 String.substring 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2243824/

相关文章:

javascript - 使用 Node js将mysql结果解析为变量

java - 如何在没有 JavaScript 知识的情况下在 Web 应用程序中使用纯 Java?

javascript函数调用性能与new

java - 制作一个空心钻石,里面有一个单词

javascript - Angular2引导错误: Error: No ExceptionHandler.是否包含平台模块(BrowserModule)?

java - 我可以改进这个 Pig-Latin 转换器吗?

Swift 4 'substring(from:)' 已弃用 : Please use String slicing subscript with a 'partial range from' operator

go - 使用从 0 到 N 的 int 数字初始化 golang slice

html - 从Go中的HTML响应解析逗号分隔列表

python - 从一个 100x100 的 pytorch 张量获得一个 10x10 的补丁,并在边界周围环绕圆环样式