gpt4 book ai didi

javascript - 如何像 mysql 一样从 jQuery 中的 json 或数组数据搜索名称

转载 作者:行者123 更新时间:2023-12-03 01:27:21 25 4
gpt4 key购买 nike

我想从 jquery 数组中搜索数据,但遇到一些问题。

当我在 src_keyword 变量中传递 Wayfarer 值时,它返回相对数据

问题

但问题是,当我在 src_keyword 变量中传递 Wayfarer Bag 值时,它返回空,但它应该返回 Wayfarer Messenger Bag

这是代码。

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
var src_keyword = 'Wayfarer Bag';
var array = [ "Foo", "Joust Duffle Bag", "Wayfarer Messenger Bag", "Voyage Yoga Bag", "pushit Messagenger bag" ]; //sample data

arr = $.map(array, function (value) {
var search = new RegExp(src_keyword, "gi");
if(value.match(search)) return value;

return null;
}
);
console.log(arr);
});
</script>
</head>
</html>

最佳答案

wp78de评论中精彩地提到...您必须修改用作正则表达式的字符串。

下面,我使用 for 循环在单词之间插入 .*? 字符。

$(document).ready(function(){
var src_keyword = 'Wayfarer Bag';
var array = [ "Foo", "Joust Duffle Bag", "Wayfarer Messenger Bag", "Voyage Yoga Bag", "pushit Messagenger bag" ]; //sample data

var multipleSearchWords = src_keyword.split(" ");
var regex="";
var result=[];

for(i=0;i<multipleSearchWords.length;i++){
regex+=multipleSearchWords[i];
if(i<multipleSearchWords.length-1){
regex+=".*?";
}
}

console.log(regex);

result = $.map(array, function (value) {
var search = new RegExp(regex, "gi");
if(value.match(search)){
return value;
}
return null;
});

console.log(result);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

现在这些单词的顺序必须正确......;)

关于javascript - 如何像 mysql 一样从 jQuery 中的 json 或数组数据搜索名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51468372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com