在 JavaScript 中使 includes() 不区分大小写

在 JavaScript 中使 includes() 不区分大小写

Make includes() case insensitive in JavaScript

要使String.includes()方法不区分大小写,请将比较中的两个字符串都转换为小写,例如
str.toLowerCase().includes(substr.toLowerCase()). 通过将两个字符串转换为相同的大小写来完成不区分大小写的比较。

索引.js
const str = 'HELLO WORLD'; const substr = 'hELLo'; // 👇️ true console.log(str.toLowerCase().includes(substr.toLowerCase())); if (str.toLowerCase().includes(substr.toLowerCase())) { // 👉️ the substring is included in the string }

我们将两个字符串都转换为小写,以使用String.includes
方法
进行不区分大小写的查找

我们可以通过将字符串转换为大写来获得相同的结果。我们只需要字符串大小写相同就可以确定子字符串是否包含在字符串中。

要执行不区分大小写的检查字符串是否包含在数组中:

  1. 使用该Array.some()方法遍历数组。
  2. 在每次迭代中,将当前数组元素和它应该与之比较的字符串小写。
  3. 如果条件至少满足一次,Array.some方法将返回。true
索引.js
const arr = ['HELLO', 'WORLD']; const str = 'HeLLo'; const isContained = arr.some(element => { return element.toLowerCase() === str.toLowerCase(); }); console.log(isContained); // 👉️ true

我们传递给
Array.some
方法的函数会被数组中的每个元素调用,直到它返回一个真值或遍历所有元素。

为了执行不区分大小写的检查字符串是否包含在数组中,我们将数组元素和字符串都转换为小写。

如果回调函数至少返回一次真值,则Array.some方法返回。true

如果我们传递给函数的所有调用都Array.some返回一个假值,则该方法返回false

Array.some一旦其回调返回真值,该方法就会停止迭代。

要执行不区分大小写的检查字符串是否包含在数组中并获取第一个匹配项:

  1. 使用该Array.find()方法遍历数组。
  2. 在每次迭代中,将数组元素和它应该与之比较的字符串小写。
  3. Array.find方法返回满足条件的第一个数组元素。
索引.js
const arr = ['HELLO', 'WORLD']; const str = 'HeLLo'; const found = arr.find(element => { return element.toLowerCase() === str.toLowerCase(); }); console.log(found); // 👉️ HELLO if (found !== undefined) { // 👉️ string is in array }

我们传递给
Array.find
方法的函数会针对数组中的每个元素进行调用,直到它返回真值或遍历整个数组。

Array.find()方法返回满足条件的第一个元素。如果您需要获取所有匹配的元素,请使用该方法。 Array.filter()

如果您需要执行不区分大小写的检查字符串是否包含在数组中并获取所有匹配项:

  1. 使用该Array.filter()方法遍历数组。
  2. 在每次迭代中,将数组元素和它应该与之比较的字符串小写。
  3. Array.filter方法将返回满足条件的所有元素的数组
索引.js
const arr = ['HELLO', 'HeLlO', 'WORLD']; const str = 'HeLLo'; const matches = arr.filter(element => { return element.toLowerCase() === str.toLowerCase(); }); console.log(matches); // 👉️ ['HELLO', 'HeLlO'] if (matches.length > 0) { // 👉️ at least 1 match found in array }

我们传递给
Array.filter
方法的函数随数组的每个元素一起调用。

一旦回调函数返回真值,该Array.filter方法就不会停止迭代。它返回满足条件的所有元素的数组。

进一步阅读

发表评论