Я бы определил функцию для сопоставления и запустил бы ее на интересующих меня строках
function findMatches( str ){
return store_array.filter( function( el ){
return new RegExp( "\b"+el+"\b", "i" ).test( str );
});
}
var results1 = findMatches( 'http://www.store1.com/' );
var results2 = findMatches( " brand1 Transform Ultra Prepaid Phone " );
//etc
\ b гарантирует, что «store1» и т. Д. Являются полными словами (так что «store1» не будет't match' megastore1 ') и / i делает его нечувствительным к регистру.
array.filter запускает функцию для каждого члена массива и возвращает копию массива только с теми членами, для которых функция возвращаетправда.Обратите внимание, что array.filter - это IE9 и выше (вы не указали платформу), для других браузеров здесь есть anice polyfill https://gist.github.com/1031656
Функция findMatches просматривает все строки в списке, превращает их в регулярные выражения и проверяет, найден ли он в строке.Если у вас много тестовой строки, может быть более эффективно запустить indexof
function findMatches( str ){
return store_array.filter( function( el ){
return ( "-1" !== str.indexOf( el ) );
});
}
Любой из них будет работать.Обратите внимание, что это не использует jQuery, просто JS (хотя ECMA5)