How to search an array in Jquery like SQL LIKE value% statement
本问题已经有最佳答案,请猛点这里访问。
我有一个带有一些值的数组。如何使用jquery搜索与之匹配或接近的值?
1 | var a = ["foo","fool","cool","god","acl"]; |
如果我想搜索
我怎么能做到?
您可以使用Javascript 1.6之后提供的过滤方法。它将返回一个带有过滤值的数组。如果您想匹配多个项目,非常方便。
https://developer.mozilla.org/en-us/docs/web/javascript/reference/global_objects/array/filter
1 2 3 4 5 6 7 8 | var a = ["foo","fool","cool","god","acl"]; var startsWith = 'c'; a.filter(function (value) { return value && value.length > 0 && value[0] == startsWith; }); // yields: ["cool"] |
一个简单的方法是检查以"c"开头的单词并迭代数组。
1 2 3 4 5 6 7 8 | var ar = ['acl','cool','cat'] for(var i = 0 ; i<ar.length ; i++){ console.log(ar[i].match(/^c/)) } //Prints: //null //["c", index: 0, input:"cool"] //["c", index: 0, input:"cat"] |
。
使用
1 2 3 4 5 6 7 8 | var strings = ["foo","cool","acl" ]; var needle ="c"; for (var i = 0; i < strings.length; ++i) { if (strings[i].substring(0, needle.length) === needle) { alert("found:" + strings[i]); } } |
试试这个:
1 2 3 4 5 | arr = jQuery.grep(a, function (value) { search = /c/gi; if(value.match(search)) return true; return false; }); |
或
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | function find(arr) { var result = []; for (var i in arr) { if (arr[i].match(/c/)) { result.push(arr[i]); } } return result; } window.onload = function() { console.log(find(["foo","fool","cool","god","acl"])); }; |
号
1 2 3 4 5 6 7 8 | var a = ["foo","fool","cool","god","acl"]; var Character="f"; for(i=0;i<a.length;i++){ if(a[i].indexOf(Character)!=-1){ document.write(a[i]+"<br/>"); } } |
。