Использование строк в new RegExp
неудобно, потому что вы должны избегать всех обратных косых черт. Вы можете писать меньшие регулярные выражения и конкатенировать их.
Давайте разделим это регулярное выражение
/^foo(.*)\bar$/
. Мы будем использовать функцию, чтобы сделать вещи более красивыми позже
function multilineRegExp(regs, options) {
return new RegExp(regs.map(
function(reg){ return reg.source; }
).join(''), options);
}
А теперь давайте скажем
var r = multilineRegExp([
/^foo/, // we can add comments too
/(.*)/,
/\bar$/
]);
Так как у него есть стоимость, попробуйте создать реальное регулярное выражение только один раз, а затем используйте это.