Задать вопрос
@NewTypes
На себя

.replace() и переменная в первом аргументе. Эскейп кавычек

Проблема такая: периодически мне нужно заменять в тексте слово, но так как слова разные, значит используем переменную.

str.replace("/"+string+"/gi", "word2")

Если мы используем переменную , значит у нас строка.

string = "word"

Если вставлять переменную в регулярку, мы будем иметь:

str.replace(/"word"/gi, "word2")

в то время как нужно:

str.replace(/word/gi, "word2")

Прим.: с "word2" ничего делать не надо, это просто слово.
Как мне обойти это? Спасибо.
  • Вопрос задан
  • 3869 просмотров
Подписаться 2 Оценить 1 комментарий
Решения вопроса 1
@Masterme
google "create javascript regex object from string"

всё дело в том, что при replace первый аргумент - это не строка '/word/', а объект класса Regex. /word/ - это такой синтаксис его создания
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Methos
@Methos
str.replace(new RegExp("word", 'ig'), "word2");
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы