JavaScript中substring与substr方法的区别及用法详解
本文详细解析JavaScript中substring和substr两个字符串截取方法的区别。重点说明substring采用起始与结束索引(左闭右开),而substr采用起始位置与截取长度。通过具体代码示例展示两种方法在正常情况、省略参数及负数索引下的不同行为,帮助开发者准确选择合适的方法。
JavaScript字符串下标基础
在深入探讨之前,先回顾一下JavaScript中下标的概念,无论是数组元素还是字符串中的字符,其下标均从0开始计数。例如,对于数组var arr = [1,2,3],其长度为3,元素下标依次为0、1、2,对应arr[0]=1, arr[1]=2。字符串同理,如var s = "hello",长度为5,首字符'h'的下标为0,后续字符依次递增。

substring方法详解
String.substring()方法用于返回字符串的子串,其语法为string.substring(from, to)。参数from指定子串在原字符串中的起始位置;参数to指定子串最后一个字符的后一位(即截取范围不包含to位置的字符,该参数可选)。
以下通过具体示例说明String.substring()的使用方式。
1、当仅使用string.substring(from)时,表示从from指定的位置开始截取,直至原字符串末尾。
var s = "hello";
s.substring(1);//就是从下标为1的字符(这里是'e')开始起到字符串末尾全部截取,最终获得子串"ello"

2、当使用string.substring(from, to)时,表示从from位置开始截取,直到to-1位置的字符(即左闭右开区间[from, to))。
var s = "hello";
s.substring(1,3);//相当于从位置为1的字符截取到位置为2的字符,得到子串为:"el"

substr方法详解
String.substr():功能同样是提取子串,但与 String.substring() 存在差异。 语法格式:string.substr(start, length) start:指定子串起始索引位置。 length:指定截取字符的数量(可选参数)。 1、string.substr(start, length):通过示例进行说明:
var s = "hello";
s.substr(1,3);//从下标为1的字符开始截取3个字符长度,最后子串为:ell

补充两种特殊情况:a、当第二个参数length超过剩余字符长度时。
var s = "hello";
s.substr(1,7)//这种情况下默认从,start位置到原字符串末尾,即返回:"ello"

b、当第一个参数start为负数时,此时从字符串尾部开始计算,-1代表最后一个字符,-2代表倒数第二个字符,依此类推。
var s = "hello";
s.substr(-3,2)//即从倒数第三个字符开始起截取2个长度,获得:"ll"

2、当使用string.substr(start)且省略length参数时,默认从start位置截取至字符串末尾。
var s = "hello";
s.substr(3)//"lo"

以上为JavaScript中substring和substr区别与用法的详细介绍,建议结合相关文档深入学习,以辅助实际开发中的字符串处理。
JS中将数组和对象混合组装为JSON字符串
2026-11-05 16:41:42
JS运算符优先级与结合性的区别是什么?
2026-11-05 13:22:02
JS Map怎么只遍历Key或Value
2026-11-05 13:00:36
D3.js 与 ECharts 选型对比:灵活性 vs 开发效率
2026-11-05 09:45:01
为什么JS中typeof []返回object:数组类型检测误区解析
2026-11-04 19:50:47
