前端必知必会-JavaScript 字符串搜索函数


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);

la​​stIndexOf() 方法向后搜索(从末尾到开头),这意味着:如果第二个参数为 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 字符串搜索函数的使用,如有问题欢迎私信和评论

猜你喜欢

转载自blog.csdn.net/qq_24018193/article/details/143450140