JavaScript substring() 方法:提取指定位置子串的参数规则与实例

阿橙
阿橙
发布时间:2026-10-13| 3人浏览过
原创

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() 的使用技巧资料请关注本站其它相关文章!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。