【Vue】字符串数组模糊查询方法

您所在的位置:网站首页 vue判断包含 【Vue】字符串数组模糊查询方法

【Vue】字符串数组模糊查询方法

#【Vue】字符串数组模糊查询方法| 来源: 网络整理| 查看: 265

目录

表格版

字符串模糊查询

使用includes方法

使用indexOf方法

使用search方法

正则表达式

数组模糊查询

filter和indexOf/includes组合

filter和正则表达式

扩展高级搜索算法

往期优质相关推荐

表格版 数据类型方法名作用简单代码示例字符串includes检查是否包含子字符串var str = "死亡如风,常伴吾身!"; if (str.includes("风")) { console.log("包含'风'"); }字符串indexOf检查子字符串首次出现的位置var str = "死亡如风,常伴吾身!"; if (str.indexOf("风") !== -1) { console.log("包含'风'"); }字符串search使用正则表达式检索字符串var str = "死亡如风,常伴吾身!"; if (str.search(/风/) !== -1) { console.log("包含'风'"); }字符串正则表达式的test方法使用正则表达式检查字符串是否匹配let str = "Hello, World!"; let regex = /world/i; if (regex.test(str)) { console.log("匹配到"); }数组indexOf查找元素在数组中首次出现的位置let grades = ["A", "B", "C", "D"]; console.log(grades.indexOf("A")); // 输出: 0数组includes检查数组是否包含特定元素let animals = ["娜可露露", "橘右京", "宫本武藏", "夏洛特"]; console.log(animals.includes("宫本武藏")); // 输出: true数组filter和indexOf组合使用indexOf进行模糊匹配过滤数组let arr = ["apple", "banana", "grape", "orange"]; let result = arr.filter(item => item.indexOf("an") !== -1); console.log(result); // 输出: ["banana", "orange"]数组filter和正则表达式结合正则表达式进行复杂模式匹配过滤数组let fruits = ["apple", "banana", "grape", "orange"]; let regex = /an/; let result = fruits.filter(fruit => regex.test(fruit)); console.log(result); // 输出: ["banana", "orange"] 字符串模糊查询 使用includes方法

这个方法返回一个布尔值,表示目标字符串是否包含了特定的子字符串。适用于字符串类型的数据。

var str = "死亡如风,常伴吾身!"; if (str.includes("风")) { // 如果字符串中包含"风" console.log("字符串中包含'风'"); } 使用indexOf方法

这个方法返回被搜索字符串在原字符串中首次出现的位置的索引,如果没有找到则返回-1。适用于字符串和数组类型的数据。这是最简单的方法,用于检查一个子字符串是否存在于另一个字符串中。

var str = "死亡如风,常伴吾身!"; if (str.indexOf("风") !== -1) { // 如果字符串中包含"风" console.log("字符串中包含'风'"); } // 对于数组 let grades = ["A", "B", "C", "D"]; console.log(grades.indexOf("A")); // 输出: 0 console.log(grades.indexOf("F")); // 输出: -1 使用search方法

这个方法使用正则表达式进行搜索,返回匹配的位置索引,如果没有找到匹配则返回-1。只适用于字符串。

var str = "死亡如风,常伴吾身!"; if (str.search("风") !== -1) { // 如果字符串中包含"风" console.log("字符串中包含'风'"); } 正则表达式

对于更复杂的模糊匹配,可以使用正则表达式来匹配模式。

let str = "Hello, World!"; let searchTerm = "world"; // 搜索不区分大小写 let regex = new RegExp(searchTerm, "i"); // "i" 代表不区分大小写 if (regex.test(str)) { console.log("Term found!"); } 数组模糊查询 filter和indexOf/includes组合

对于数组中的字符串,可以用filter方法结合indexOf或includes来实现模糊查询。

let animals = ["娜可露露", "橘右京", "宫本武藏", "夏洛特"]; console.log(animals.includes("宫本武藏")); // 输出: true console.log(animals.includes("宫本子")); // 输出: false let grades = ["A", "B", "C", "D"]; console.log(grades.indexOf("A")); // 输出: 0 console.log(grades.indexOf("F")); // 输出: -1 let arr = ["apple", "banana", "grape", "orange"]; let searchTerm = "an"; let result = arr.filter(item => item.indexOf(searchTerm) !== -1); console.log(result); // ["banana", "orange"] filter和正则表达式

如果需要更复杂的查询,可以结合filter方法和正则表达式。

let arr = ["apple", "banana", "grape", "orange"]; let searchTerm = "an"; let regex = new RegExp(searchTerm, "i"); let result = arr.filter(item => regex.test(item)); console.log(result); // ["banana", "orange"] 扩展高级搜索算法

对于更高级的模糊搜索,可以使用算法,如Levenshtein距离(编辑距离),或者字符串搜索算法,如Boyer-Moore算法。

以下是一个使用Levenshtein距离的例子,它度量两个字符串之间的差异:

function levenshtein(a, b) { var tmp; if (a.length === 0) { return b.length; } if (b.length === 0) { return a.length; } if (a.length > b.length) { tmp = a; a = b; b = tmp; } var i, j, res, alen = a.length, blen = b.length, row = Array(alen); for (i = 0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3