String-apis(21-30)

92 阅读4分钟

21 match()

match() 方法检索返回一个字符串匹配正则表达式的结果。

语法:

str.match(regexp)

示例:

var  str = "AaBbCc"
var reg1 = /[A-Z]/g
var reg2 = /[A-Z]/
str.match(reg1) // ['A', 'B', 'C']
str.match(reg2) // ['A', index: 0, input: 'AaBbCc', groups: undefined]

说明:

  • 如果使用g标志,则将返回与完整正则表达式匹配的所有结果,但不会返回捕获组。
  • 如果未使用g标志,则仅返回第一个完整匹配及其相关的捕获组(Array)。 在这种情况下,返回的项目将具有如下所述的其他属性。

22 matchAll()

matchAll()  方法返回一个包含所有匹配正则表达式的结果及分组捕获组的迭代器

可以通过Array的for...of...等遍历方法逐个遍历迭代器的所有匹配项

参数同match()

示例:

const reg = /t(e)(st(\d?))/g
const str = "test1test2"

// 单个取值
var arr = [...str.matchAll(reg)]
arr[0] // ['test1', 'e', 'st1', '1', index: 0, input: 'test1test2', groups: undefined]
arr[1] // ['test2', 'e', 'st2', '2', index: 5, input: 'test1test2', groups: undefined]

// 直接遍历
for(const e of str.matchAll(reg)){
  console.log(e)
}

23 normalize()

normalize()  方法会按照指定的一种 Unicode 正规形式将当前字符串正规化。(如果该值不是字符串,则首先将其转换为一个字符串)。

24 padEnd() & padStart()

1.padEnd()方法会用一个字符串填充当前字符串(如果需要的话则重复填充),返回填充后达到指定长度的字符串。从当前字符串的末尾(右侧)开始填充。

参数:

参数说明
targetLength需要填充到的目标长度
padString填充的字符串,不填就是空字符串

示例:

'hello world'.padEnd(20) // 'hello world         '
'hello world'.padEnd(20,'*') // 'hello world*********'

2.padStart()方法用法与padEnd()相同,作用相反

25 raw()

String.raw()  是一个模板字符串的标签函数,它的作用类似于 Python 中的字符串前缀 r 和 C# 中的字符串前缀 @(还是有点区别的,详见隔壁 Chromium 那边的这个 issue),是用来获取一个模板字符串的原始字符串的,比如说,占位符(例如 ${foo})会被处理为它所代表的其他字符串,而转义字符(例如 \n)不会。

26 repeat()

repeat()  构造并返回一个新字符串,该字符串包含被连接在一起的指定数量的字符串的副本。

语法:

str.repeat(count)

示例:

const s = "abc"
s.repeat(3) // 'abcabcabc'

27 replace()

replace()  方法返回一个由替换值(replacement)替换部分或所有的模式(pattern)匹配项后的新字符串。模式可以是一个字符串或者一个正则表达式,替换值可以是一个字符串或者一个每次匹配都要调用的回调函数。如果pattern是字符串,则仅替换第一个匹配项。

语法:

str.replace(regexp|substr, newSubStr|function)

参数:

参数说明
regexp一个RegExp对象或其字面量。匹配的内容会被第二个参数的返回值替换(加了g会替换全部,不加g只替换第一个)
substr一个即将被替换的字符串,仅第一个匹配项会被替换
newSubStr用于替换掉第一个参数在原字符串中的匹配部分的字符串
function一个用来创建新子字符串的函数,该函数的返回值将替换掉第一个参数匹配到的结果。

28 replaceAll()

replaceAll()  方法返回一个新字符串,新字符串所有满足 pattern 的部分都已被replacement 替换。pattern可以是一个字符串或一个 RegExp, replacement可以是一个字符串或一个在每次匹配被调用的函数。

用法基本同replace()方法。只不过当使用正则来匹配相应的字符串时,必须设置("g")标志。否则将报错。

29 search()

search()方法执行正则和字符串的一个搜索匹配。匹配成功,返回第一次匹配项的索引,否则返回-1。

示例:

let str = "hello88world"
str.search(/\d{2}/) // 5
str.search(/88/) // 5

30 slice()

slice() 方法提取某个字符串的一部分,并返回一个新的字符串,且不会改动原字符串。

语法:

str.slice(beginIndex[, endIndex])

参数:

参数说明
beginIndex从此处开始提取原字符串中的字符
endIndex(可选)在该索引处结束提取字符串。如果省略,则提取到字符串末尾

示例:

let str = "hello-world"
str.slice(2,6) // llo-
str.slice(6) // world