Подтвердить что ты не робот

Регулярное выражение Javascript - строка для объекта RegEx

Я уверен, что это что-то довольно маленькое, что мне не хватает, но я не смог понять это.

У меня есть переменная JavaScript с шаблоном regex, но я не могу заставить ее работать с классом RegEx

следующее всегда вычисляется как false:

var value = "[email protected]";
var pattern = "^\[email protected][a-zA-Z_]+?\.[a-zA-Z]{2,3}$"
var re = new RegExp(pattern);
re.test(value);

но если я изменю его на правильное выражение регулярного выражения (удалив цитаты и добавив / в начале и в конце шаблона), он начнет работать:

var value = "[email protected]";
var pattern = /^\[email protected][a-zA-Z_]+?\.[a-zA-Z]{2,3}$/
var re = new RegExp(pattern);
re.test(value);

так как я всегда получаю шаблон как строку в переменной, я не смог понять, что мне здесь не хватает.

4b9b3361

Ответ 1

Обратные косые черты - это специальные символы в строках, которые должны быть экранированы с помощью другой обратной косой черты:

var value = "[email protected]";
var pattern = "^\\[email protected][a-zA-Z_]+?\\.[a-zA-Z]{2,3}$"
var re = new RegExp(pattern);
re.test(value);