【js截取字符串常用方法】在 JavaScript 中,处理字符串时经常需要从一个字符串中提取特定部分,比如截取前几位字符、根据某个分隔符分割、或者根据索引范围获取子串等。以下是一些 JS 截取字符串的常用方法,并结合示例进行说明。
一、常用字符串截取方法总结
| 方法名 | 描述 | 示例代码 | 返回值 |
| `slice()` | 从起始索引到结束索引(不包括) | `str.slice(0, 3)` | `"abc"` |
| `substring()` | 从起始索引到结束索引(不包括) | `str.substring(1, 4)` | `"bcd"` |
| `substr()` | 从起始索引开始,截取指定长度的字符 | `str.substr(2, 3)` | `"cde"` |
| `split()` | 根据分隔符分割字符串 | `str.split(" ")` | `["hello", "world"]` |
| `match()` | 使用正则表达式匹配子串 | `str.match(/\d+/)` | `["123"]` |
二、各方法详解与对比
1. `slice(start, end)`
- 功能:从 `start` 开始,到 `end` 结束(不包含 `end`),返回新字符串。
- 特点:
- 支持负数索引(如 `-1` 表示最后一个字符)。
- 不会修改原字符串。
```javascript
let str = "javascript";
console.log(str.slice(0, 3)); // "jav"
console.log(str.slice(-3));// "ipt"
```
2. `substring(start, end)`
- 功能:与 `slice` 类似,但 `start` 和 `end` 不能为负数。
- 特点:
- 如果 `start > end`,会自动交换位置。
- 同样不会改变原字符串。
```javascript
let str = "javascript";
console.log(str.substring(2, 5)); // "vas"
console.log(str.substring(5, 2)); // "vas"(自动调整)
```
3. `substr(start, length)`
- 功能:从 `start` 开始,截取 `length` 长度的字符。
- 特点:
- 第二个参数是长度,不是结束索引。
- 也支持负数索引。
```javascript
let str = "javascript";
console.log(str.substr(2, 3)); // "vas"
console.log(str.substr(-3, 2)); // "pt"
```
4. `split(separator, limit)`
- 功能:将字符串按指定分隔符拆分成数组。
- 特点:
- 可以限制返回的元素数量。
- 分隔符可以是字符串或正则表达式。
```javascript
let str = "apple,banana,orange";
console.log(str.split(",")); // ["apple", "banana", "orange"
console.log(str.split(",", 2));// ["apple", "banana"
```
5. `match(pattern)`
- 功能:使用正则表达式匹配字符串中的内容。
- 特点:
- 返回匹配结果组成的数组。
- 若没有匹配项,则返回 `null`。
```javascript
let str = "abc123def";
console.log(str.match(/\d+/)); // ["123"
console.log(str.match(/[a-z]+/));// ["abc", "def"
```
三、使用场景建议
| 场景 | 推荐方法 |
| 按索引范围截取 | `slice()` 或 `substring()` |
| 按长度截取 | `substr()` |
| 按分隔符分割 | `split()` |
| 提取符合某种规则的子串 | `match()` |
四、小结
在 JavaScript 中,字符串截取是一个非常基础且常用的技能。不同的方法适用于不同的情境,理解它们之间的差异可以帮助你更高效地处理字符串数据。合理选择合适的方法,可以让代码更加简洁和易读。


