Регулярное выражение 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);
так как я всегда получаю шаблон как строку в переменной, я не смог понять, что мне здесь не хватает.
Ответы
Ответ 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);