我想在jquery中从数组中搜索数据,但我遇到了一些问题。
当我在src_keyword
变量中传递Wayfarer值时,它会返回相关数据
问题
但问题是,当我在src_keyword
变量中传递旅行袋的值时,它返回空,但它应该返回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>
发布于 2018-07-23 03:35:39
正如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>
现在,这些单词必须按正确的顺序排列。;)
发布于 2018-07-23 08:41:19
您可以在一个简单的筛选器中使用正则表达式测试(我假设您只是想匹配所有的传送项)
var array = [ "Foo", "Joust Duffle Bag", "Wayfarer Messenger Bag", "Bag Wayfarer", "Bag Way farer Way Bag", "Voyage Yoga Bag", "pushit Messagenger bag" ]; // sample data
var arr = array.filter(function (value) { // Native Array.Filter is supported all the way down to IE9 so no need for jquery FYI
return (/wayfarer/gi.test(value)); // Will return true for every entry that contains the text 'wayfarer' anywhere in the string
});
console.log(arr); // arr = (2) ["Wayfarer Messenger Bag", "Bag Wayfarer"]
https://stackoverflow.com/questions/51468372
复制相似问题