JavaScript substring() 方法:提取指定位置子串的参数规则与实例
substring() 是 JavaScript 原生 String 对象的方法,用于返回一个字符串在开始至止索区间内的子串。本文将深入解析其参数行为、边界处理规则,并对比常见的切片方法。
定义与基本语法
substring() 方法旨在从原字符串中提取介于两个指定下标之间的字符。与 slice() 和 substr() 不同,substring() 仅接收非负整数作为参数。
基础语法如下:
stringObject.substring(start[, stop])
- start:必需。一个非负整数,表示要提取的子串的第一个字符在原字符串中的位置(索引从 0 开始)。
- stop:可选。一个非负整数,表示要提取的子串的最后一个字符的位置之后的索引。如果不提供该参数,则提取直至字符串末尾的所有字符。
返回值是一个新的字符串,包含从 start 到 stop - 1 的所有字符。
核心规则与特性
第1步:理解左右闭左开区间
substring() 提取的范围是包括起始位置 start,但不包括结束位置 stop。例如 substring(3, 7) 实际上提取的是索引 3、4、5、6 的四个字符。
第2步:参数自动交换机制
这是一个极易被忽视但非常实用的特性。如果在调用时传入的两个参数不满足 start <= stop,即第一个参数比第二个参数大,JavaScript 引擎会在执行提取之前自动交换这两个参数的值。
- 若
start == stop,方法返回一个空字符串(长度为 0)。 - 若
start > stop,等价于将两者互换后再进行正常截取。
第3步:负数参数的特殊处理
substring() 不支持负数索引。如果传入负数,该方法会将其视为 0。这一点是与 Python 等语言字符串切片或 JS 中 slice() 方法的主要区别,需格外注意。
操作实例演示
第1步:单参数使用
当省略 stop 参数时,默认截取从 start 到字符串末尾的部分。
var str = "Hello world!";
// 提取从索引 3 开始直到结尾的子串
console.log(str.substring(3));
// 输出结果: "lo world!"
第2步:双参数使用与交换效果
明确指定起始和终止索引,观察中间字符的提取过程及参数交换的效果。
var str = "Hello world!";
// 常规顺序:提取索引 3 到 6 (不包含 7)
console.log(str.substring(3, 7));
// 输出结果: "lo w"
// 倒序参数:start > stop,系统自动交换为 (7, 3)
console.log(str.substring(7, 3));
// 输出结果: "lo w" (同上)
// 参数相同:start === stop
console.log(str.substring(4, 4));
// 输出结果: "" (空字符串)
总结与注意事项
substring() 是一种安全的字符串截取方式,其最大的优势在于对颠倒顺序的自动容错处理。但在涉及需要从后往前计数或需要切割负数区间时,建议改用支持负数处理的 slice() 方法。掌握其“含头不含尾”的规则,即可准确构建各种业务所需的字符串切片逻辑。
以上就是 JavaScript substring() 方法的详细内容,更多关于 JavaScript substring() 的使用技巧资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













