JS String 字符串属性和方法 包含ES6
MDN String
+运算符的操作数中包含字符串,则被认为是级联,其他操作数要转化为字符串
可以通过数组的方式来访问单个字符
字符串属性
length 字符串长度
获取字符
charAt / [ ]
.charAt(position)
(ES5后[]
代替)
.charCodeAt(position) 返回unicode 编码
at() 获取字符
单个 UTF-16
支持负索引 一般位置是针对下标的坐标轴,类似于指针操作,负索引
子串判定
includes ES6
第一个参数 匹配的字符串
第二个参数 匹配起始位置
startsWith / endsWith 较为局限 ES6
第一个参数 匹配的字符串
第二个参数 匹配起始位置
查找性
区分大小写,可通过toUpperCase/toLowerCase 抹除大小写差异 或正则 i 标记
indexOf / lastIndexOf (ES5)
参数 | |
---|---|
第一个参数 | 查找字符串 |
第二个参数 | 起始查找位置 |
返回 | 查找位置索引,未找到返回-1 |
---|
当查找空串‘’时,返回起始查找位置
常使用
str.indexOf('字符') > -1
来判断字符串中有没有特定字符
search 检索字符串
参数 | 目标子串的正则表达式 | 参数非正则时会隐式转化 new RegExp(regexp) |
返回 | 查找位置索引,未找到返回-1 |
.match
匹配正则 会隐式转化 new RegExp(regexp)
不传参时
参数情况 | 返回 |
---|---|
不传参 | 返回 [""] |
正则 g 标记 | 返回 [所有匹配结果] |
不为 g 标记 | 返回 [第一个匹配结果, 捕获组见下文] |
未找到匹配 | 返回 null |
捕获组构成:
- groups: 一个捕获组(正则对应各个分组的结果)数组 或 undefined(如果没有定义正则分组)。
- index: 匹配的结果的开始位置
- input: 搜索的字符串.
var str = 'For more information, see Chapter 3.4.5.1';
var re = /see (chapter \d+(\.\d)*)/i;
var found = str.match(re);
/*
[
'see Chapter 3.4.5.1', // 第一个匹配结果
'Chapter 3.4.5.1',
'.1',
index: 22,
input: 'For more information, see Chapter 3.4.5.1' ]
*/
要获得捕获组并且设置了全局标志g,则需要使用用 RegExp.exec() 或者 matchAll()
matchAll
为了获取g模式下的捕获组而诞生
必须是设置了全局模式g的形式,否则会抛出异常TypeError
相较于exec,其 lastIndex 不会随迭代改变
返回 迭代器 xx[0]调用
功能性 - 生成
raw ``模板字符串
参数 | |
---|---|
第一个参数 | 数组 会被拼接为字符串 |
后续参数 | 依次插入到数组间隙中内容 |
使用``更方便,通过${}
插入
repeat ES2015 重复指定次数字符串
参数 | ||
---|---|---|
count | 0~+Infinity 表示将字符串重复指定次数 | 注意RangeError |
padStart / padEnd 根据设定长度补全字符串
参数 | |
---|---|
第一个参数 | 目标长度 |
第二个参数 | 填充字符串 默认’ ’ |
功能性 - 替换
replace 替换字符串内容
参数 | |
---|---|
第一个参数 | 字符串 / 正则表达式 若为字符串仅替换提一个匹配的结果 |
第二个参数 | 新字符串 / 回调函数 参数 |
返回 | 替换后的字符串,但.replace() 方法不会改变y原字符串。 |
---|
替换字符串可以插入的特殊变量名,有别于模板字符串 适用正则而诞生;上文回调函数同理。
replaceAll
当参数为字符串时,全替换
正则必须设g,否则会抛出异常TypeError
toUpperCase / toLowerCase 转换大小写
参数如果不是字符串会强制类型转化 如使用call,apply,bind时。
扩展:toLocaleLowerCase / toLocaleUpperCase
功能性
slice 截取部分字符串
.slice(start, end)
支持负索引 (length-索引)
旧版:.
substring(start, end) 无法接受负的索引
trim 删除字符串两端的空白符
扩展:trimEnd / trimStart
–
concat 拼接多个字符串
推荐使用+
代替此方法
–
split 字符串转换为数组
参数 | |
---|---|
第一参数 | 表示根据什么分隔 支持正则,支持数组 |
第二参数 | 输出数组长度上限 |
谨慎使用空串’'作为分隔条件,
可能不会达到预期效果(不按单个字符分隔而按每个 UTF-16 代码单元),会摧毁代理对
替代方案:
- Array.from(str)
- […str]
- 使用适当的正则作为参数 不推荐
String.toString 转化为字符串
String.toString 覆盖了 Object 对象的 toString() 方法, 与valueOf返回相同
字符串对象toString 直接返回字符串
valueOf 通常由 JavaScript 在内部调用,而不是在代码中显式调用。
可以应用正则的方法
- split(分割)
- replace(替换)
- search(查找)
- .match(regexp)
- .matchAll
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)