首页 > 资讯 > 甄选问答 >

JavaScript中三个截取字符串函数用法和区别比较实例详解

2026-01-02 12:17:41

问题描述:

JavaScript中三个截取字符串函数用法和区别比较实例详解,真的撑不住了,求高手支招!

最佳答案

推荐答案

2026-01-02 12:17:41

JavaScript中三个截取字符串函数用法和区别比较实例详解】在JavaScript中,处理字符串时经常需要用到截取字符串的功能。常见的三个字符串截取方法是 `substring()`、`slice()` 和 `substr()`。虽然它们都能实现字符串的截取功能,但使用方式和行为存在一些差异。以下是对这三者的详细讲解和对比。

一、

1. `substring(start, end)`

- 从 `start` 开始,到 `end` 结束(不包含 `end`)截取字符串。

- 参数不能为负数,如果传入负数则会被视为0。

- 如果 `start > end`,会自动交换位置。

2. `slice(start, end)`

- 与 `substring` 类似,但从 `start` 到 `end`(不包含 `end`)截取字符串。

- 支持负数参数,表示从字符串末尾倒数。

- 语法更灵活,适用于复杂场景。

3. `substr(start, length)`

- 从 `start` 开始,截取长度为 `length` 的字符串。

- 第二个参数是“长度”,而不是“结束位置”。

- 不支持负数参数,若传入负数会报错或行为不可预测。

二、表格对比

方法 参数说明 是否支持负数 是否可交换 start 和 end 截取方式 示例
`substring()` `start`, `end` 从 start 到 end `str.substring(2, 5)` → 截取第3~4位字符
`slice()` `start`, `end` 从 start 到 end `str.slice(2, 5)` → 截取第3~4位字符
`substr()` `start`, `length` 从 start 截取 length 位 `str.substr(2, 3)` → 截取第3~5位字符

三、实例说明

```javascript

let str = "Hello, world!";

console.log(str.substring(2, 5)); // "llo"

console.log(str.slice(2, 5)); // "llo"

console.log(str.substr(2, 3));// "llo"

console.log(str.substring(5, 2)); // "llo"(自动交换)

console.log(str.slice(5, 2)); // ""(不交换)

console.log(str.substr(-3, 2)); // 报错或行为不确定

```

四、使用建议

- 优先选择 `slice()`:因其支持负数、兼容性好,适合大多数情况。

- 避免使用 `substr()`:因为其参数是“长度”而非“结束位置”,容易混淆。

- 谨慎使用 `substring()`:虽然简单,但在 `start > end` 时会有意想不到的行为。

通过合理选择这些字符串截取方法,可以更高效地处理字符串内容,提升代码的可读性和健壮性。

免责声明:本答案或内容为用户上传,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 如遇侵权请及时联系本站删除。