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 重复指定次数字符串

参数
count0~+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 代码单元),会摧毁代理对
替代方案:

  1. Array.from(str)
  2. […str]
  3. 使用适当的正则作为参数 不推荐

String.toString 转化为字符串

String.toString 覆盖了 Object 对象的 toString() 方法, 与valueOf返回相同
字符串对象toString 直接返回字符串

valueOf 通常由 JavaScript 在内部调用,而不是在代码中显式调用。


可以应用正则的方法

posted @   海胆Sur  阅读(31)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示