以下是 JavaScript 中常见字符串和数组方法的总结,按方法分类说明:
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"
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 在处理参数时有显著差异(负数、参数顺序)。