Tak więc tworzymy funkcję, która przyjmuje ciąg literalny i tablicę, którą chcemy przejrzeć. zwraca nową tablicę z znalezionymi dopasowaniami. Tworzymy nowy obiekt regexp wewnątrz tej funkcji, a następnie wykonujemy String.search na każdym elemencie elementu w tablicy. Jeśli zostanie znaleziony, przesuwa ciąg znaków do nowej tablicy i zwraca.
// literal_string: a regex search, like /thisword/ig
// target_arr: the array you want to search /thisword/ig for.
function arr_grep(literal_string, target_arr) {
var match_bin = [];
// o_regex: a new regex object.
var o_regex = new RegExp(literal_string);
for (var i = 0; i < target_arr.length; i++) {
//loop through array. regex search each element.
var test = String(target_arr[i]).search(o_regex);
if (test > -1) {
// if found push the [email protected] into our matchbin.
match_bin.push(target_arr[i]);
}
}
return match_bin;
}
// arr_grep(/.*this_word.*/ig, someArray)
W jaki sposób nie używasz pętli? –
Szukasz dopasowania przeciwko wszystkim wyrażeniom (AND) lub dowolnemu wyrażeniu (OR)? – Arth
Z jquery można użyć jQuery.inArray(); – GillesC