Вы добавили синтаксис регулярного выражения в строку. Вы должны либо использовать регулярное выражение буквального синтаксис:
var regex = /cat|bat|dog/i;
Или передать строку (без разделителей/модификаторов) в качестве первого аргумента RegExp
constructor:
var regex = new RegExp('cat|bat|dog', 'i');
Также вам понадобится g
флаг (глобальный модификатор), чтобы проверить регулярное выражение на все возможные совпадения, иначе будет возвращено только первое совпадение.
Полный пример:
var regex = /cat|bat|dog/ig; //or new RegExp('cat|bat|dog', 'ig');
var string = "A dog saw a cat and a bat";
var matches = string.match(regex);
matches; //["dog", "cat", "bat"]