> For AI agents: the complete documentation index is available at /llms.txt, the full documentation bundle is available at /llms-full.txt.

# 字符串方法

## 1、charAt(number)

```javascript title="代码示例"
var str1 = "abc";
let res1 = str1.charAt(0);
console.log(res1); // a
let res11 = str1.charAt(4);
console.log(res11); // ''
```

注：返回指定位置的字符(不存在则返回为空)

## 2、charCodeAt(number)

```javascript title="代码示例"
let res2 = str1.charCodeAt(0);
console.log(res2); // 97
let res22 = str1.charCodeAt(3);
console.log(res22); // NaN
```

注：返回指定位置上的字符的 Unicode 编码，不存在则返回 NaN

## 3、concat()：字符串拼接

```javascript title="代码示例"
var str3 = "zhang",
    str31 = "xiaokang";
let res3 = str3.concat(str31);
console.log(res3); // zhangxiaokang
```

## 4、indexOf()：检索字符串（区分大小写）

```javascript title="代码示例"
var str4 = "Hi XK";
console.log(str4.indexOf("Hi")); // 0
console.log(str4.indexOf("X")); // 3
// 返回值为-1，表示没有与当前字符匹配的字符串
console.log(str4.indexOf("xk")); // -1
```

## 5、match()：字符串过滤

```javascript title="代码示例"
var str5 = "1 abc 2 def 3";
console.log(str5.match(/\d+/g)); // ["1", "2", "3"]
```

## 6、replace()

```javascript title="代码示例"
var str6 = "abc Dnf!";
console.log(str6.replace(/abc/, "ZXK")); // ZXK Dnf!
```

注：在字符串中用一些字符替换另一些字符，或者替换一个与正则表达式匹配的字符串。

## 7、search()

```javascript title="代码示例"
console.log(str6.search(/dnf/i)); // 4
```

注：检索字符串中指定的子字符串，或检索与正则表达式相匹配的子串，若要 **忽略大小写** ,则需添加 **i**，若无匹配字符串，返回 **-1**。

## 8、slice(start,end)

```javascript title="代码示例"
var str = "abc def ghk";
console.log(str.slice(6)); //f ghk
```

:::info 注意事项

- 提取字符串的片断，并在新的字符串中返回被提取的部分。
- **start**：要抽取的片断的起始下标。如果是 **负数**，则该参数规定的是从字符串的 **尾部** 开始算起的位置。也就是说，**-1** 指字符串的最后一个字符，-2 指倒数第二个字符，以此类推。
- **end：** 紧接着要抽取的片段的结尾的下标。若未指定此参数，则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数，那么它规定的是从字符串的尾部开始算起的位置。

:::

## 9、split()：把字符串分割为字符串数组

```javascript title="代码示例"
let str9 = "ab cd ef";
console.log(str9.split(" ")); // ["ab", "cd", "ef"]
console.log(str9.split(" ", 2)); // ["ab", "cd"]
```

## 10、toLocaleLowerCase()：把字符串转换为小写

```javascript title="代码示例"
var str = "ABC def!";
console.log(str.toLocaleLowerCase()); //abc def!
```

## 11、toLocaleUpperCase()：把字符串转换为大写

```javascript title="代码示例"
var str = "ABC def!";
console.log(str.toLocaleUpperCase()); //ABC DEF!
```

## 12、toLowerCase()：把字符串转换为小写

```javascript title="代码示例"
var str = "ABC def!";
console.log(str.toLowerCase()); //abc def!
```

## 13、toUpperCase()：把字符串转换为大写

```javascript title="代码示例"
var str = "ABC def!";
console.log(str.toUpperCase()); //ABC DEF!
```

## 14、str.substr(start, length)

```javascript title="代码示例"
var str = "abc def";
console.log(str.substr(2)); //c def
console.log(str.substr(2, 4)); // c de
```

:::info 注意

- 从起始索引提取字符串中指定书目的字符
- **start**：**必需**。要抽取的子串的起始下标。必须是数值。如果是**负数**，那么该参数声明从字符串的尾部开始算起的位置。也就是说，**-1** 指字符串中最后一个字符，-2 指倒数第二个字符，以此类推。
- **length**：**可选**。子串中的字符数。必须是数值。如果省略了该参数，那么返回从 stringObject 的开始位置到结尾的字串。

:::

## 15、str.substring(start, stop)

```javascript title="代码示例"
var str = "abc def";
console.log(str.substring(2)); //c def
console.log(str.substring(2, 4)); // c
```

:::info 注意

- 注：提取字符串中两个指定的索引号之间的字符。

- **start**：**必需**。一个非负的整数，规定要提取的子串的第一个字符在 str 中的位置。

- **stop**：**可选**。一个非负的整数，比要提取的子串的最后一个字符在 str 中的位置多 **1**。如果省略该参数，那么返回的子串会一直到字符串的结尾。

- **substr(start,length) 与 substring(start,stop) 的区别：**

- **相同点**：如果只是写一个参数，两者的作用都一样：都是是截取字符串从当前下标以后直到字符串最后的字符串片段。

- substr(startIndex);

- substring(startIndex);

- **不同点**：第二个参数

- **substr（startIndex,length）**： 第二个参数是截取字符串的长度（从起始点截取某个长度的字符串）；
  **substring（startIndex, endIndex）**： 第二个参数是截取字符串最终的下标 （截取 2 个位置之间的字符串，'**含头不含尾**'）。

:::
