String
1. 静态方法
.fromCharCode()- 判断是否为 Number 类型,且是整数
String.fromCharCode(字符编码);- 【例子】
String.fromCharCode(65); // A
- 【例子】
- 判断是否为 Number 类型,且是整数
2. 原型方法
-
截取
- substring 可把字符串按范围截取出子串返回
字符串.substring(头索引[, 终结索引]);- 注意不包括终结索引处字符
- 不会改变原始字符串
- 等价于使用
.slice或者.substr
- substring 可把字符串按范围截取出子串返回
-
分割
- split 可把字符串分割成子串数组返回
- 情况 1
字符串.split(分割位字符串,返回子串数组的最大长度)- 可把 字符串 替换为 正则 RegExp
-
查找
-
从头部的 fromIndex 处 开始向后找,返回第一个找到的索引号,找不到则返回-1
字符串.indexOf(要查的子字符串[, fromIndex]) -
从尾部的 fromIndex 处 向前开始找,返回第一个找到的索引号,找不到则返回-1
字符串.lastIndexOf(要查的子字符串[, fromIndex])
-
-
索引
- 返回对应索引位置的字符
字符串[索引];字符串.at(索引);字符串.charAt(索引); - 返回对应索引位置的字符的 Unicode 编码(或 ASCII 码)
字符串.charCodeAt(索引);
- 返回对应索引位置的字符
-
转大小写
- 全部转为大写返回,注意不改变原始字符串
字符串.toUpperCase(); - 全部转为小写返回,注意不改变原始字符串
字符串.toLowerCase();
- 全部转为大写返回,注意不改变原始字符串
-
替换
- replace 可执行全局匹配,有以下三种参数(子字符串/非全局/全局)
- 情况 1
字符串.replace(旧的子字符串,新的子字符串) - 情况 2
字符串.replace(非全局RegExp对象,新的子字符串) //只替换第一个符合匹配的 - 情况 3
字符串.replace(全局RegExp对象,新的子字符串) //替换所有符合匹配的- 对于参数 2(新的子字符串),有一种特别的带$的模式
- 例子
var str3 = '这是一段原始文本,"3c这要替换4d"!'; var newStr = str3.replace(/([0-9])([a-z])/g, "$1"); console.log(newStr); //输出: 这是一段原始文本,"3这要替换4"!';- 解释:
- $1 表示匹配结果中的第 1 个子匹配结果,也就是新的文本为([0-9])匹配出来的东西
- 在这里
- 3c 匹配到后,3 就是第 1 个子匹配
- 4d 匹配到后,4 就是第 1 个子匹配
- 同理
- $n 表示匹配结果中的第 n 个子匹配结果
- 解释:
-
去空格
- trim 可去掉字符串前后多余的空格并返回,注意不会修改原字符串
新子串 = 字符串.trim();- 可只去掉一边
- 左边:
.trimStart() - 右边:
.trimEnd()
- 左边:
- 可只去掉一边
- trim 可去掉字符串前后多余的空格并返回,注意不会修改原字符串
ES6 加入的新方法
-
存在性判定
- 是否包含子串
字符串.includes(子串);- 用来替代以前的
indexOf() !== -1
- 用来替代以前的
- 是否以某个子串开头
字符串.startsWith(子串); - 是否以某个子串结尾
字符串.endsWith(子串);
- 是否包含子串
-
操作
- 重复 n 遍
字符串.repeat(n);
- 重复 n 遍
ES8 加入的新方法
- 追加字符串至“某个满意的目标长度”
- 在前面追加
字符串.padStart(目标长度, 可选填充子串);- 例子
"js".padStart(2); // 'es8' "js".padStart(5); // ' js' "js".padStart(6, "6666"); // '6666js' "js".padStart(6, "0"); // '0000js' "js".padStart(14, "system"); // 'systemsystemjs' - 目标长度
- 太短相当于没效果
- 太长就会被迫使用 重复的填充子串
- 如果没填充子串,默认就是空格
- 例子
- 在后面追加
字符串.padEnd(目标长度, 可选填充子串);
- 在前面追加