字符串用于存储和处理文本。

创建字符串

用单引号 双引号包起来的字符(单引号双引号不可嵌套或交叉使用)。

1
2
var str = "Hello String!";
var str1 = 'Hello String!';

注意:特殊字符需要使用‘\’转义。

  • ' 单引号
  • " 双引号
  • \ 反斜杠
  • \n 换行
  • \r 回车
  • \t tab(制表符)
  • \b 退格符
  • \f 换页符

字符串属性和方法

字符串长度

1
2
3
var str = "Hello String!";

console.log(str.length); // 13

字符串指定位置字符

1
2
3
4
5
6
7
8
9
10
var str = "Hello String!";

// 返回第 1 个字符
console.log(str.charAt(0)); // H

// 返回第 1 个字符的 Unicode 编码
console.log(str.charCodeAt(0)); // 72

// 将 Unicode 编码转换为字符
console.log(String.fromCharCode(72)); // H

字符串指定字符位置

1
2
3
4
5
6
7
8
9
10
11
12
var str = "Hello String!";

// l 首次出现的位置
var address1 = str.indexOf("l");

// l 最后一次出现的位置
var address2 = str.lastIndexOf("l");

// 查找不存在的字符会返回 -1
var address3 = str.lastIndexOf("a");

console.log(address1, address2, address3); // 2 3 -1

判断字符串开头

下列方法不会改变原字符串。

1
2
3
4
var str = "Hello World!";

// 判断 str 是否以 h 开头
console.log(str.startsWith("h")); // false

字符串拼接

下列方法不会改变原字符串。

1
2
3
4
5
6
7
8
9
var str1 = "Hello",
str2 = " ",
str3 = "World",
str4 = "!";

// 相当于 str1 + str2 + str3
var str = str1.concat(str2, str3, str4);

console.log(str); // Hello World!

字符串重复

下列方法不会改变原字符串。

1
2
3
4
var str = "ab";

// str 重复两遍
console.log(str.repeat(2)); // abab

字符串与正则

下列方法不会改变原字符串。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var str = "abcdabcd";

// 整个字符串中查找,出现两次
console.log(str.match(/a/g)); // ["a", "a"]

// 整个字符串中替换 a 为 e
var str1 = str.replace(/a.*/g, "e");

console.log(str, str1); // abcdabcd ebcdebcd

// 查找指定字符所在位置,search 支持正则
var address1 = str.search("a"),
address2 = str.search("e");

console.log(address1, address2); // 0 -1

字符串分割成数组

下列方法不会改变原字符串。

1
2
3
4
5
6
var str = "Hello World!";

// 以空格来划分数组
var strArr = str.split(" ");

console.log(str, strArr); // Hello World! ["Hello", "World!"]

字符串截取

下列方法不会改变原字符串。

1
2
3
4
5
6
7
8
9
10
11
12
var str = "Hello World!";

// slice(start,end) 截取字符串,start 为起始位置,必填,最小为0;end 为结束位置,不填即代表至末尾;start <= 截取值 < end
var str1 = str.slice(0,2);

// substr(start,length) 截取字符串,start 为起始位置,必填,最小为0;length 为截取长度,不填即代表至末尾;start <= 截取值 < start+length
var str2 = str.substr(1,2);

// substring(start,end) 截取字符串,start 为起始位置,必填,最小为0;end 为结束位置,不填即代表至末尾;start <= 截取值 < end
var str3 = str.substring(2,8);

console.log(str, str1, str2, str3); // Hello World! He el ll0 w0

去字符串首尾空白

1
2
3
4
5
6
var str = "      Hello World!       ";

// trim() 去字符串首尾空白
var str1 = str.trim();

console.log('-',str,'--',str1,'-'); // - Hello World! -- Hello World! -

字符串大小写转换

下列方法不会改变原字符串。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var str = "Hello World!";

// 使用 toLowerCase() 将 str 转换为小写
var str1 = str.toLowerCase();

// 使用 toUpperCase() 将 str 转换为大写
var str2 = str.toUpperCase();

// 使用 toLocaleLowerCase() 将 str 转换为小写
// 可以识别本地主机语言(部分地域语言存在特有的大小写转换)来得出对应的小写
var str3 = str.toLocaleLowerCase();

// 使用 toLocaleUpperCase() 将 str 转换为大写
// 可以识别本地主机语言(部分地域语言存在特有的大小写转换)来得出对应的小写
var str4 = str.toLocaleUpperCase();

console.log(str,str1,str2,str3,str4); // Hello World! hello world! HELLO WORLD!