本文详细对比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
(空字符串)