JavaScript中substr、substring和slice字符串截取函数的区别与用法

作者:闭包旅人时间:2026-10-27 18:32:30浏览:564

本文详细对比JavaScript中三种常用的字符串截取方法:substr、substring和slice。重点解析了参数含义的差异,特别是substr的第二个参数为截取长度,而另外两个为结束索引。同时说明了slice支持负数索引以及处理起始位置大于结束位置时的行为差异,帮助开发者准确选择合适的方法。

JavaScript字符串截取函数概述

在JavaScript开发中,处理字符串截取时最常使用的三个内置函数分别是substr、substring和slice。它们的调用语法结构如下所示。

相关代码示例如下:

stringObject.slice(start,end)
stringObject.substr(start,length)
stringObject.substring(start,end)

参数含义与行为差异解析

这三个函数最显著的区别在于第二个参数的定义。对于substr而言,第二个参数代表的是截取的字符长度;而对于slice和substring,第二个参数则表示截取范围的结束位置索引。需要注意的是,slice和substring均不包含结束索引对应的字符,即实际截取到该索引前一个字符为止。



slice与substring在负数索引处理上存在差异。slice允许第二个参数为负数,例如-1代表字符串的最后一个字符;而substring不支持负数索引。此外,当start参数大于end参数时,substring会自动交换这两个参数的位置以提取子串,而slice则不会进行交换,直接返回空字符串。



代码示例与输出结果

具体使用示例如下:


代码实现如下:

var str="Helloworld"
console.log(str.substr(0, 2))
console.log(str.substring(2, 0))
console.log(str.substring(0, 2))
console.log(str.slice(0, -1))
console.log(str.slice(-1, 0))

上述代码的执行输出结果如下:



He


He


He


Helloworl


(空字符串)

作者最新文章