js字符串截取
时间: 2025-05-28 18:44:40 浏览: 18
### JavaScript 字符串截取方法 `substring` 和 `slice`
#### 方法一:`substring(startIndex, endIndex)`
该方法用于提取字符串中介于两个指定下标之间的字符。其语法如下:
```javascript
str.substring(startIndex[, endIndex])
```
- 参数说明:
- `startIndex`: 截取的起始索引(必填),从0开始计数。
- `endIndex`: 结束索引(可选)。如果不提供,则默认为字符串长度。
特点:
- 如果 `startIndex` 大于 `endIndex`,两者会自动交换位置[^4]。
- 不支持负数作为参数,任何负数值都会被当作0处理[^4]。
示例代码:
```javascript
let str = "Hello World!";
console.log(str.substring(6)); // 输出:"World!"
console.log(str.substring(3, 7)); // 输出:"lo W"
```
---
#### 方法二:`slice(startIndex, endIndex)`
此方法同样用于提取字符串中的部分子串,但功能更强大,允许使用负数来表示从字符串末尾开始计算的位置。
```javascript
str.slice(startIndex[, endIndex])
```
- 参数说明:
- `startIndex`: 起始索引(必填)。
- `endIndex`: 终止索引(可选)。如果省略,默认到字符串结尾。
特点:
- 支持负数索引,其中 `-1` 表示最后一个字符,`-2` 表示倒数第二个字符等[^4]。
- 当 `startIndex` 或 `endIndex` 是负数时,它们会被解释为相对于字符串末端的距离[^4]。
示例代码:
```javascript
let str = "Hello World!";
console.log(str.slice(6)); // 输出:"World!"
console.log(str.slice(-5)); // 输出:"World"
console.log(str.slice(3, 8)); // 输出:"lo Wo"
console.log(str.slice(-9, -6)); // 输出:"o W"
```
---
### 总结对比
| 特性 | `substring` | `slice` |
|---------------------|--------------------------------------|---------------------------------------|
| **负数支持** | 不支持 | 支持 |
| **参数顺序调整** | 自动调整 | 不调整 |
| **常用场景** | 基础字符串截取 | 更灵活的正向/反向索引操作 |
尽管两种方法都可以实现字符串截取的功能,但在实际开发中推荐优先考虑 `slice()`,因为它更加通用且易于理解[^3]。
---
阅读全文
相关推荐














