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 = ['100ml Chubby Gorilla Vape Juice Reusable E-Liquid Bottles','10ml BD Sterile Discardit II Disposable Syringes','10mm Laboratory Rubber Tubing Sold By The Meter.','10mm Quartz Glass Connection Tubing ( Pack Of Three )','10mm Quartz Glass Connection Tubing ( Singles )','10mm Quartz Glass Tubing ( 5 Pack )','120ml Chubby Gorilla Vape Juice Reusable E-Liquid Bottles','14 - 23 Keck Glass Joint Clip Plastic B14','150mm Glass Stir Rods Five Pack','185mm Test Tube Holder Peg Type','19 - 26 Keck Glass Joint Clip Plastic B19','200mm Glass Stir Rods ( Pack Of Five )','20ml BD Sterile Discardit II Disposable Syringes','24 - 29 Keck Glass Joint Clip Plastic B24','24 Hole Plastic Test Tube Rack','260mm Test Tube Holder Peg Type','29 - 32 Keck Glass Joint Clip Plastic B29','2ml BD Sterile Discardit II Disposable Syringes','34 - 35 Keck Glass Joint Clip Plastic B14','50g Anhydrous Magnesium Sulfate 99.5 Percent Pure','5ml BD Sterile Discardit II Disposable Syringes','60 Hole Plastic Test Tube Rack','60ml Chubby Gorilla Vape Juice Reusable E-Liquid Bottles','6mm Laboratory Rubber Tubing Sold By The Meter.','8mm Rubber Tubing Sold By The Meter.','Academy Buchner Filter Flasks 250ml','Academy Buchner Filter Flasks 500ml','ACADEMY Glass Lab Beakers 5ml to 5000ml Low Form','ACADEMY Glass Microscope Slides 76mm x 26mm','Acetone 99.9 Percent Pure ACS Grade Solvent','Bosshead Retort Double Screw Clamp','Dichloromethane 99.9 Percent Pure ACS Grade Solvent','EISCO Buchner Filter Flasks 1000ml','EISCO Conical Narrow Neck Flasks Sizes 50ml to 2000ml','EISCO Four Prong Retort Screw Clamp Plus Bosshead','EISCO Glass Filter Funnels Short Stem Various Sizes','EISCO Glass Measuring Cylinders Sizes 10ml to 1000ml','EISCO Square Bosshead Screw Clamp','Eisco Tall Form Laboratory Beakers Various Sizes','EISCO Three Prong Swivel Screw Clamp Plus Bosshead','Four Prong Retort Screw clamp','Isopropanol - Isopropyl Alcohol ACS Grade','JOHNSON Litmus Blue Test Paper 10 Books 200 Strips','JOHNSON Litmus Red Test Paper 10 Books 200 Strips','JOHNSON Neutral Litmus Test Paper 10 Books 200 Strips','JOHNSON Universal Indicator Paper pH 1 - 14','JOHNSON Universal pH Indicator 5m Reel Ph 1 - 14','JOHNSON Universal pH Indicator Strips No-Bleed 0 - 14 pH','JOHNSON Wine pH Indicator Test Strips 2.8 - 4.4 pH range','KIMBLE Glass Boiling Tubes 150mm x 24mm With Rims','KIMBLE Glass Rimless Test Tubes 100mm x 16mm','KIMBLE Glass Rimless Test Tubes 125mm x 16mm','KIMBLE Glass Rimless Test Tubes 150mm x 24mm','KIMBLE Glass Test Tubes 100mm x 16mm With Rims','KIMBLE Glass Test Tubes 125mm x 16mm With Rims','KIMBLE Glass Test Tubes 150mm x 16mm With Rims','KIMBLE Glass Test Tubes 150mm x 18mm With Rims','Laboratory Safety Glasses ( 3 Pack )','Laboratory Safety Glasses ( 5 Pack )','Laboratory Safety Glasses ( Single Pairs )','Methanol ACS Grade 99.95 Percent Pure Various Sizes','One Hole Rubber Bungs - Stoppers','Potassium Permanganate 99 Percent Pure Sizes 50g 100g 250g','PYREX Glass Test Tubes 75mm x 12mm Rimless','Qualitative Filter Paper Various Sizes Available','Round Bottom Flask Stand Polypropylene','SIMAX Glass Reagent Bottles Various Sizes 100ml - 2000ml','Solid Rubber Bungs - Stoppers','Three Prong Retort Screw Clamp','Toluene ACS Grade 99.9 Percent Pure Solvent','Two Hole Bungs - Stoppers','Urine Sample Containers Sterile 30ml With Screw cap','VWR Wide Mouth Conical Flasks','Wooden Test Tube Rack 6 Hole' ]; var productsIDs = [ ]; $('#our-products .typeahead').typeahead({ hint: true, highlight: true, minLength: 1 }, { name: 'products', limit: 40, source: substringMatcher(products) });