substring、slice、splice、split、join、match、replace方法总结

js   2025-04-01 14:05   45   0  

以下是 JavaScript 中常见字符串和数组方法的总结,按方法分类说明:

字符串方法

  1. substring(startIndex, endIndex)

  • 负数参数视为 0;若 start > end,自动交换位置。

  • 省略 endIndex 时截取到末尾。

  • startIndex:起始索引(包含)。

  • endIndex:结束索引(不包含,可选)。

  • 用途:截取字符串片段。

  • 参数

  • 特性

  • 示例

    javascript"hello".substring(1, 3); // "el""hello".substring(3, 1); // "el"(自动交换)

slice(start, end)

  • 支持负数(从末尾计算),例如 -2 表示倒数第二个元素。

  • 若 start > end,返回空字符串或数组。

  • 用途:截取字符串或数组片段。

  • 参数

  • 示例

    javascript"hello".slice(1, 3); // "el""hello".slice(-3);    // "llo"(从倒数第三位开始)

split(separator, limit?)

  • 空字符串 "" 会拆分为字符数组。

  • 正则中的捕获组会保留在结果中。

  • separator:字符串或正则表达式。

  • limit:限制返回数组长度。

  • 用途:按分隔符拆分字符串为数组。

  • 参数

  • 特性

  • 示例

    javascript"a,b,c".split(",");          // ["a", "b", "c"]"hello".split(/(e)/);        // ["h", "e", "llo"]

match(regexp)

  • 无 g 标志:返回类似 RegExp.exec 的数组(含捕获组、index 和 input)。

  • 有 g 标志:返回所有匹配结果的数组(无详细信息)。

  • 用途:正则匹配字符串。

  • 返回值

  • 示例

    javascript"abc123".match(/\d+/);        // ["123", index: 3, ...]"abc123".match(/\d/g);        // ["1", "2", "3"]

replace(searchValue, replaceValue)

  • searchValue:字符串或正则(带 g 标志则全局替换)。

  • replaceValue:字符串(可用 $1 等占位符)或函数。

  • 用途:替换匹配内容。

  • 参数

  • 示例

    javascript"John Doe".replace(/(\w+) (\w+)/, "$2, $1"); // "Doe, John""123".replace(/\d/g, "x");                    // "xxx"

数组方法

  1. slice(start, end?)

  • 用途:截取数组片段,不修改原数组。

  • 参数:同字符串的 slice,支持负数。

  • 示例

    javascript[1, 2, 3].slice(1, 2); // [2][1, 2, 3].slice(-2);   // [2, 3]

splice(start, deleteCount, ...items)

  • start:起始位置(负数从末尾计算)。

  • deleteCount:删除的元素数量(若为 0 则只插入)。

  • ...items:要插入的元素。

  • 用途:添加/删除元素,修改原数组

  • 参数

  • 返回值:被删除的元素数组。

  • 示例

    javascriptconst arr = [1, 2, 3];arr.splice(1, 1, "a"); // 返回 [2],arr变为 [1, "a", 3]

join(separator)

  • 用途:将数组元素连接为字符串。

  • 参数separator(默认逗号)。

  • 示例

    javascript[1, 2, 3].join("-"); // "1-2-3"

关键区别

方法作用对象修改原数据参数特性返回值
substring字符串自动处理负数及交换参数新字符串
slice字符串/数组支持负数,不自动交换参数新字符串/数组
splice数组可删除并插入元素被删除元素的数组
split字符串支持正则和捕获组数组
join数组默认用逗号连接字符串
match字符串依赖正则标志返回不同结果数组或 null
replace字符串支持函数替换和正则全局替换新字符串

注意事项

  • 字符串方法均不修改原字符串,返回新字符串。

  • splice 是唯一会修改原数组的方法。

  • slice 和 substring 在处理参数时有显著差异(负数、参数顺序)。


博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。