js中常用的4种模糊查询详解(includes()、indexOf()、search()、match())

 更新时间:2023年11月02日 11:22:36   作者:秋悲婳  
这篇文章主要给大家介绍了关于js中常用的4种模糊查询(includes()、indexOf()、search()、match())的相关资料,搜索可以使我们更快的找到某一个关键词或者某一个商品,所以模糊查询和下拉匹配也成了前端必备的一个小技能,需要的朋友可以参考下

includes()

includes() 方法用来判断一个数组或字符串是否包含一个指定的值,如果是则返回 true,否则返回false。

indexOf()

indexOf() 方法可返回数组或字符串中某个指定的元素位置。

在数组中该方法将从头到尾地检索数组,看它是否含有对应的元素。开始检索的位置在数组 start 处或数组的开头(没有指定 start 参数时)。如果找到一个 item,则返回 item 的第一次出现的位置。开始位置的索引为 0。

如果在数组中没找到指定元素则返回 -1。

在字符串中,与在数组中不同之处在与,当在字符串中寻找的是空字符串时,返回值为0,而不是-1

search()

search() 方法用于检索字字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。

如果没有找到任何匹配的子串,则返回 -1

当在字符串中寻找的是空字符串时,返回值为0,而不是-1

match()

在字符串内检索指定的值,或找到一个或多个正则表达式的匹配

有的话以阵列回传,否则回传 null

其中查找为空字符串时,index返回值也为0

补充:js中includes() 和indexOf() 两方法区分

描述

  • includes() ---- 判断一个数组是否包含一个指定的值。支持ES5语法
  • indexOf() ---- 搜索数组中的元素,并返回它所在的位置。支持ES6语法

使用与返回值(undefined、NaN需特殊注意)

  • includes() 返回值true / false
let arr = [1,2,'san',4,,NaN];
console.log(arr.includes('san')); //true
console.log(arr.includes(6)); //false
console.log(arr.includes(undefined)); //true
console.log(arr.includes(NaN)); //true
  • indexOf() 返回查找元素下标,没有返回-1
var arr = [1,2,'san',4,,NaN];
console.log(arr.indexOf('san')); //2
console.log(arr.indexOf(6)); //-1
console.log(arr.includes(undefined)); //-1
console.log(arr.includes(NaN)); //-1

var arr2 = [1,undefined];
console.log(arr2.indexOf(undefined)); // 1

关于+0、-0,两种方法都不区分正负

浏览器兼容性

  • includes()
    chrome47 - firefox43 - safria9 - opera34 - ie14
  • indexOf()
    ie8及早版本不支持除外,其他都支持

所以indexOf的兼容性相对较好

总结

到此这篇关于js中常用的4种模糊查询(includes()、indexOf()、search()、match())的文章就介绍到这了,更多相关js常用模糊查询内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

最新评论