var substringMatcher = function(strs) { return function findMatches(q, cb) { var matches, substringRegex; // an array that will be populated with substring matches matches = []; // regex used to determine if a string contains the substring `q` substrRegex = new RegExp(q, 'i'); // iterate through the pool of strings and for any string that // contains the substring `q`, add it to the `matches` array $.each(strs, function(i, str) { if (substrRegex.test(str)) { matches.push(str); } }); cb(matches); }; }; var products = ['Abstracting The Land. Cotswold Sculpture Park','Abstracting The Landscape. Hawkwood College','bbb','Blossoms Walk','Bluebells And Forget-Me-Knots','Breathe In And Believe','Colours Of The Land','Confetti Field','Daisy Dip','Dandelion Clocks.','Dappled Earth','Dreams Seeded In Winter 1','Dreams Seeded In Winter 2','Earlier Adult Art Class. WED 3rd JUNE. 3.30-5.30pm Pansies And Teacups. Brookthorpe Village Hall. Stroud Road, GL4 0UR','Elegance','Endless Light','Evening Adult Art Class. WED 3rd JUNE. 6.30pm-8.30pm. Pansies And Teacups. Brookthorpe Village Hall. Stroud Road, GL4 0UR','Field Of Wishes.','Golden Hour','Gulls Call','Hiding Hollyhocks','Hiding Hollyhocks.','kk','Lavender Fields','Loves Me, Loves Me Not.','Meadow Hive','Meadow Blue','Meadow Home','mmmm','Murmer In The Meadows','nnnnn','painting','Sea Mist','Secret Wild Garden','Small Works Placeholder - more items arriving soon','ssss','Through The Grasses','Top Of The Bay','Towards The Tide','Waiting For Butterflies','Wild Daisy Meadow','Wild Flower Path','Wild Grasses','Wild Meadow Grasses. Cotswold Sculpture Park','Wild Meadow Grasses. Hawkwood College','WISE OLD OWL Earlier Adult Art Class. WED 17th JUNE. 3.30-5.30pm Brookthorpe Village Hall. Stroud Road, GL4 0UR','WISE OLD OWL. Later Adult Art Class. WED 17th JUNE. 6.30-8.30pm. Brookthorpe Village Hall. Stroud Road, GL4 0UR','Within Bluebell Wood','Within The Tees. Cotswold Sculpture Park.','Within The Trees. Hawkwood College','xxx','zzzzz' ]; var productsIDs = [ ]; $('#our-products .typeahead').typeahead({ hint: true, highlight: true, minLength: 1 }, { name: 'products', limit: 40, source: substringMatcher(products) });