JavaScript String Search
String Search Methods
- String indexOf()
- String lastIndexOf()
- String search()
- String match()
- String matchAll()
- String includes()
- String startsWith()
- String endsWith()
JavaScript String indexOf()
indexOf()
该方法返回索引(位置) 字符串中第一次出现字符串:
1 | let text = "Please locate where 'locate' occurs!"; |
注意
JavaScript 从零开始计算位置。
0 是 字符串,1 是第二个,2 是第三个,…
JavaScript String lastIndexOf()
lastIndexOf()
该方法返回字符串中指定文本的最后一次出现的索引:
1 | let text = "Please locate where 'locate' occurs!"; |
indexOf()``lastIndexOf()
和 return -1 如果未找到文本:
1 | let text = "Please locate where 'locate' occurs!"; |
这两个方法都接受第二个参数作为搜索的起始位置:
1 | let text = "Please locate where 'locate' occurs!"; |
lastIndexOf()
方法向后搜索 (从头到尾),意思是: 如果第二个参数是 ,则搜索从位置开始 15,并搜索到字符串的开头。
1 | let text = "Please locate where 'locate' occurs!"; |
JavaScript String search()
search()
该方法在字符串中搜索字符串(或正则表达式) 并返回匹配项的位置:
1 | let text = "Please locate where 'locate' occurs!"; |
1 | let text = "Please locate where 'locate' occurs!"; |
你注意到了吗?
indexOf()
和 search()
这两种方法相等吗?
它们接受相同的参数(参数),并返回相同的值?
这两种方法并不相等。这些是区别:
search()
方法不能采用第二个起始位置参数。indexOf()
方法不能采取 强大的搜索值(正则表达式)。
您将了解更多 正则表达式将在后面的章节中介绍。
JavaScript String match()
match()
该方法返回一个包含匹配结果的数组 针对字符串(或正则表达式)的字符串。
执行“ain”搜索:
1 | let text = "The rain in SPAIN stays mainly in the plain"; |
执行“ain”搜索:
1 | let text = "The rain in SPAIN stays mainly in the plain"; |
对“ain”执行全局搜索:
1 | let text = "The rain in SPAIN stays mainly in the plain"; |
对“ain”执行不区分大小写的全局搜索:
1 | let text = "The rain in SPAIN stays mainly in the plain"; |
注意
如果正则表达式不包含 g 修饰符(全局搜索),则仅返回字符串中的第一个匹配项。match()
在 JS RegExp 一章中阅读有关正则表达式的更多信息。
JavaScript String matchAll()
matchAll()
方法返回一个包含匹配结果的迭代器 针对字符串(或正则表达式)的字符串。
1 | const iterator = text.matchAll("Cats"); |
如果参数是正则表达式,则必须设置全局标志 (g),否则 抛出 TypeError。
1 | const iterator = text.matchAll(/Cats/g); |
如果要搜索不区分大小写,则必须设置不区分大小写标志 (i):
1 | const iterator = text.matchAll(/Cats/gi); |
笔记
matchAll()
是 [ES2020]
的一项功能。
matchAll()
在 Internet Explorer 中不起作用。
JavaScript String includes()
如果字符串包含指定值,则includes()
该方法返回 true。
否则返回 .false
检查字符串是否包含“world”:
1 | let text = "Hello world, welcome to the universe."; |
检查字符串是否包含“world”。从位置 12 开始:
1 | let text = "Hello world, welcome to the universe."; |
笔记
includes()
区分大小写。
includes()
是 [ES6 的一项功能]
。
includes()
在 Internet Explorer 中不受支持。
JavaScript String startsWith()
如果字符串以指定值开头,则startsWith()
该方法返回:true
否则返回:false
返回 true:
1 | let text = "Hello world, welcome to the universe."; |
返回 false:
1 | let text = "Hello world, welcome to the universe."; |
可以指定Search
的起始位置:
返回 false:
1 | let text = "Hello world, welcome to the universe."; |
返回 true:
1 | let text = "Hello world, welcome to the universe."; |
笔记
startsWith()
区分大小写。
startsWith()
是 [ES6 的一项功能]
。
startsWith()
在 Internet Explorer 中不受支持。
JavaScript String endsWith()
如果字符串以指定值结尾,则endsWith()
该方法返回:true
否则返回:false
检查字符串是否以“Doe”结尾:
1 | let text = "John Doe"; |
检查字符串的前 11 个字符是否以“world”结尾:
1 | let text = "Hello world, welcome to the universe."; |
笔记
endsWith()
区分大小写。
endsWith()
是 [ES6 的一项功能]
。
endsWith()
在 Internet Explorer 中不受支持。
0评论