本文详细介绍JavaScript中常用的四种模糊查询方法:includes()、indexOf()、search()和match()。通过对比它们的返回值、处理空字符串的行为以及浏览器兼容性,帮助开发者根据实际需求选择最合适的方法,特别是针对NaN和undefined的特殊处理进行了说明。
includes()
includes() 方法用于检测数组或字符串中是否存在指定值,若存在则返回 true,否则返回 false。

indexOf()
indexOf() 方法用于返回数组或字符串中指定元素首次出现的索引位置。
在数组中,该方法从头开始检索,起始位置由可选的 start 参数决定(默认为 0)。若找到匹配元素,返回其第一次出现的索引;若未找到,则返回 -1。
当在数组中未找到指定元素时,该方法返回 -1。
在字符串中,若搜索目标为空字符串,返回值与数组不同,将返回 0 而非 -1。

search()
search() 方法用于在字符串中查找指定的子字符串,或匹配正则表达式。
若未找到任何匹配的子串,该方法返回 -1。
当在字符串中搜索空字符串时,返回值为 0,而非 -1。

match()
match() 方法用于在字符串中查找指定值,或查找一个或多个正则表达式的匹配项。
若找到匹配项,则以数组形式返回结果;若未找到,则返回 null。
当搜索目标为空字符串时,该方法的返回值同样为 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常用模糊查询内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!