首页 >> 严选问答 >

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

2026-01-17 18:02:11

答

【JavaScript中三个截取字符串函数用法和区别比较实例详解】在JavaScript中,处理字符串时经常需要用到截取字符串的功能。常见的三个字符串截取方法是 `substring()`、`slice()` 和 `substr()`。虽然它们都能实现字符串的截取功能,但使用方式和应用场景有所不同。以下是对这三者的详细对比和实例说明。

一、

1. `substring(start, end)`:从 `start` 开始,到 `end` 结束(不包括 `end`),若参数为负数则会被视为0。

2. `slice(start, end)`:与 `substring()` 类似,但支持负数索引,表示从字符串末尾开始计算位置。

3. `substr(start, length)`:从 `start` 开始,截取长度为 `length` 的子字符串,不支持负数索引。

三者的核心区别在于对负数参数的支持、是否包含结束索引以及语法上的细微差别。

二、表格对比

方法 参数说明 是否支持负数 是否包含结束索引 是否可读性强 适用场景
`substring()` `start`, `end` 否 是(不包含) 一般 简单截取,适合已知位置
`slice()` `start`, `end` 是 是(不包含) 较高 支持负数,适合复杂索引操作
`substr()` `start`, `length` 否 否(按长度截取) 一般 截取固定长度,较不常用

三、实例说明

示例1:基本使用

```javascript

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

// substring

console.log(str.substring(0, 5)); // 输出: "JavaS"

// slice

console.log(str.slice(0, 5)); // 输出: "JavaS"

// substr

console.log(str.substr(0, 5)); // 输出: "JavaS"

```

示例2:负数参数

```javascript

let str = "Hello World";

// substring 不支持负数

console.log(str.substring(-3, 5)); // 输出: "Hell" (-3 被视为 0)

// slice 支持负数

console.log(str.slice(-5, 5)); // 输出: "World" (-5 表示倒数第5个字符)

// substr 不支持负数

console.log(str.substr(-3, 5)); // 输出: "ld" (-3 被视为 8,即 "d")

```

示例3:截取特定部分

```javascript

let str = "This is a test string.";

// substring

console.log(str.substring(8, 11)); // 输出: "a t"

// slice

console.log(str.slice(8, 11)); // 输出: "a t"

// substr

console.log(str.substr(8, 3)); // 输出: "a t"

```

四、总结

在实际开发中,`slice()` 更加灵活,尤其在需要使用负数索引时;`substring()` 适用于简单的字符串截取;而 `substr()` 则更偏向于根据长度进行截取,但在现代开发中使用频率较低。

建议优先使用 `slice()`,因其兼容性好、语义清晰,且支持更多高级用法。

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

 
分享:
最新文章