文章目录
JavaScript 字符串搜索
JavaScript 字符串 indexOf()
indexOf() 方法返回字符串中第一次出现字符串的索引(位置),如果未找到字符串,则返回 -1:
示例
let text = "请定位 'locate' 出现的位置!";
let index = text.indexOf("locate");
注意
JavaScript 从零开始计数位置。
0 是字符串中的第一个位置,1 是第二个位置,2 是第三个,…
JavaScript 字符串 lastIndexOf()
lastIndexOf() 方法返回字符串中最后一次出现指定文本的索引:
示例
let text = "请定位 'locate' 出现的位置!";
let index = text.lastIndexOf("locate");
如果未找到文本,indexOf() 和 lastIndexOf() 均返回 -1:
示例
let text = "请定位 'locate' 出现的位置!";
let index = text.lastIndexOf("John");
两种方法均接受第二个参数作为搜索的起始位置:
示例
let text = "请定位 'locate' 出现的位置!";
let index = text.indexOf("locate", 15);
lastIndexOf() 方法向后搜索(从末尾到开头),这意味着:如果第二个参数为 15,则搜索从位置 15 开始,并搜索到字符串的开头。
示例
let text = "请定位 'locate' 出现的位置!";
text.lastIndexOf("locate", 15);
JavaScript 字符串 search()
search() 方法在字符串中搜索字符串(或正则表达式)并返回匹配的位置:
示例
let text = "请定位 'locate' 出现的位置!";
text.search("locate");
let text = "请定位 'locate' 出现的位置!";
text.search(/locate/);
您注意到了吗?
这两个方法 indexOf() 和 search() 是相等的?
它们接受相同的参数 (parameters),并返回相同的值?
这两个方法不相等。区别如下:
- search() 方法不能接受第二个起始位置参数。
- indexOf() 方法不能接受强大的搜索值 (正则表达式)。
您将在后面的章节中了解有关正则表达式的更多信息。
JavaScript 字符串 match()
match() 方法返回一个数组,其中包含将字符串与字符串 (或正则表达式) 匹配的结果。
示例
搜索“ain”:
let text = "西班牙的降雨主要集中在平原地区";
text.match("ain");
搜索“ain”:
let text = "西班牙的降雨主要集中在平原地区";
text.match(/ain/);
对“ain”进行全局搜索:
let text = “西班牙的雨主要集中在平原地区”;
text.match(/ain/g);
对“ain”进行全局、不区分大小写的搜索:
let text = “西班牙的雨主要集中在平原地区”;
text.match(/ain/gi);
注意
如果正则表达式不包含 g 修饰符(全局搜索),match() 将仅返回字符串中的第一个匹配项。
在 JS RegExp 一章中阅读有关正则表达式的更多信息。
JavaScript String matchAll()
matchAll() 方法返回一个迭代器,其中包含将字符串与字符串(或正则表达式)匹配的结果。
示例
const iterator = text.matchAll("Cats");
如果参数是正则表达式,则必须设置全局标志 (g),否则会引发 TypeError。
示例
const iterator = text.matchAll(/Cats/g);
如果要搜索不区分大小写的内容,则必须设置不区分大小写的标志 (i):
示例
const iterator = text.matchAll(/Cats/gi);
注释
matchAll() 是 ES2020 功能。
matchAll() 在 Internet Explorer 中不起作用。
JavaScript 字符串 includes()
如果字符串包含指定值,则 includes() 方法返回 true。
否则返回 false。
示例
检查字符串是否包含“world”:
let text = “Hello world, welcome to the universe。”;
text.includes(“world”);
检查字符串是否包含“world”。从位置 12 开始:
let text = “Hello world, welcome to the universe。”;
text.includes(“world”, 12);
注释
includes() 区分大小写。
includes() 是 ES6 功能。
Internet Explorer 不支持 includes()。
JavaScript 字符串 startsWith()
如果字符串以指定值开头,则 startsWith() 方法返回 true。
否则返回 false:
示例
返回 true:
let text = "Hello world, welcome to the universe.";
text.startsWith("Hello");
返回 false:
let text = "Hello world, welcome to the universe.";
text.startsWith("world")
可以指定搜索的起始位置:
返回 false:
let text = "Hello world, welcome to the universe.";
text.startsWith("world", 5)
返回 true:
let text = "Hello world, welcome to the universe.";
text.startsWith("world", 6)
注意
startsWith() 区分大小写。
startsWith() 是 ES6 功能。
Internet Explorer 不支持 startsWith()。
JavaScript String endsWith()
如果字符串以指定值结尾,endsWith() 方法返回 true。
否则返回 false:
示例
检查字符串是否以“Doe”:
let text = “John Doe”;
text.endsWith(“Doe”);
检查字符串的前 11 个字符是否以“world”结尾:
let text = “Hello world,欢迎来到宇宙。”;
text.endsWith(“world”, 11);
注意
endsWith() 区分大小写。
endsWith() 是 ES6 功能。
Internet Explorer 不支持 endsWith()。
总结
本文介绍了JavaScript 字符串搜索函数的使用,如有问题欢迎私信和评论