Вам не нужно включать косые черты в начале и в конце, когда вы используете конструктор RegExp:
var expr = /foo/;
Эквивалентно:
var expr = new RegExp("foo");
Вам просто нужнопозаботьтесь о двойной экранирующей обратной косой черте (\
) в строке шаблона, например:
var expr = /\\/;
Должно быть:
var expr = new RegExp("\\\\");
Это потому, что в строковом литерале обратная косая чертаиспользуется также для экранирования символов.
Редактировать: Эквивалент
var expr = /^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w ]*))+\.(ext)$/;
Должно быть:
var expr = new RegExp("^(([a-zA-Z]:)|(\\\\{2}\\w+)\\$?)(\\\\(\\w[\\w ]*))+\\.("+
ext.toLowerCase + ")$");
Обратите внимание, что вы также можете использоватьфлаг без учета регистра, в буквальной записи как /foo/i
, с конструктором RegExp
: new RegExp("foo", "i")
.