在JS中String类型是基本数据类型,与其语言使用对象实现字符串不同。
声明定义
用对象方式创建字符串
let str = new String('Hello World!');
用字符串字面量创建字符串
let str = 'Hello World!';
注:字符串使用单、双、反(esc下面)引号包裹,单、双、反引号使用结果没有区别,但是开头和结尾引号必须匹配。
let str1 = 'Hello World!';let str2 = "Hello World!";let str3 = `Hello World!`;console.log(str1); // 'Hello World!'console.log(str2); // 'Hello World!'console.log(str3); // 'Hello World!'
转义符号
有些字符有双层含义,需要使用 \ 转义符号进行含义转换。
常用转义符号列表:
| 符号 | 说明 |
|---|---|
| \t | 制表符 |
| \n | 换行 |
| \\ | 斜杠符号 |
| \‘ | 单引号 |
| \“ | 双引号R |
连接运算符
- 使用 + 可以连接多个内容组合成字符串,经常用于组合输出内容使用。
- 使用 += 在字符串上追回字符内容。
模板字面量
使用符号包裹的字符串中可以写入引入变量与表达式,支持换行且保留字符串原样。
模板字面量最常用的一个特性是支持字符串插值,也就是可以在一个连续定义中插入一个或多个值。 ```javascript let url = ‘http://hello-chen.cn‘; let port = ‘8080’;
console.log(${url}:${port});
function fn() { return ‘Hello World!’; }
console.log(${fn()});
http://hello-chen.cn:8080 Hello World!
<a name="NVH88"></a>### 字符串处理常用方法<a name="jJ3Ak"></a>#### 获取长度```javascriptlet str = 'Hello World!';console.log(str.length);// 12
大小写转换
console.log(str.toUpperCase()); // HELLO WORLD!console.log(str.toLowerCase()); // hello world!
移除空白
console.log(str.trim()); //Hello World!// 移除左边的空白console.log(str.trimLeft()); //Hello World!// 移除右边的空白console.log(str.trimRight()); // Hello World!
获取单字符
// 从0开始的位置获取字符console.log(str.charAt(3)); // l// 使用索引指定获取字符console.log(str[1]); // H
截取字符串
使用 slice、substr、substring 函数都可以截取字符串。
- slice、substring 第二个参数为截取的结束位置。
- substr 第二个参数指定获取字符数量。
- slice 原型
String.slice(start?: number, end?: number): string - substr 原型
String.substr(from: number, length?: number): string - substring 原型
String.substring(start: number, end?: number): stringconsole.log(str.slice(1, 4)); // Helconsole.log(str.substr(1, 5)); // Helloconsole.log(str.substring(1, 4)); // Hel
查找字符串
indexOf方法从开始获取字符串位置,检测不到时返回 -1。lastIndexOf方法从结尾获取字符串位置,检测不到时返回 -1。search方法用于检索字符串中指定的子字符串位置,也可以使用正则表达式搜索。includes字符串中是否包含指定的值,第二个参数指查找开始位置。console.log(str.indexOf('l', 1)); // 3console.log(str.indexOf('l', 13)); // -1console.log(str.lastIndexOf('l')); // 10console.log(str.lastIndexOf('l', 3)); // 3console.log(str.search('World')); // 7console.log(str.includes('World')); // true
替换字符串
replace方法用于字符串的替换操作,默认只替换一次,如果全局替换需要使用正则。console.log(str.replace('Hello','Hi')); // Hi World!
重复生成
repeat方法字符串复制指定次数。 ```javascript let str = ‘‘; console.log(str.repeat(3)); // **
let phone = “19982501234”; console.log(phone.slice(0, 3) + str.repeat(4) + phone.slice(7, 11)); // 199**1234 ```
类型转换
TODO
