Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.03.2021, 09:53
Интересующийся
Отправить личное сообщение для rsaburov Посмотреть профиль Найти все сообщения от rsaburov
 
Регистрация: 06.01.2014
Сообщений: 24

Можно ли использовать переменную в RegExp?
Имеется RegExp:
string.replace(new RegExp(".*Ключевое слово.*\r\n",'g'),"")
которое удаляет строку содержащую подстроку Ключевое слово
Можно ли заменить его на переменную javascript?

var keyword = "Здравствуй мир";
string.replace(new RegExp(".*keyword.*\r\n",'g'),"");
Так чтобы удалялась строка, содержащая подстроку Здравствуй мир
Ответить с цитированием
  #2 (permalink)  
Старый 08.03.2021, 10:40
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Сообщение от rsaburov
Можно ли заменить его на переменную javascript?
да, но лучше сначала экранировать служебные символы.
Ответить с цитированием
  #3 (permalink)  
Старый 08.03.2021, 11:12
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Экранирование специальных символов и создание RegExp
rsaburov,

const escapeRegExp = str => str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
const createRegExp = str => new RegExp(escapeRegExp(str),'gm');
const replaceKeyword = (str, keyword, patern = '') => str.replace(createRegExp(keyword), patern)
let str = `123 Здравствуй мир
Здравствуй мир 123
123Здравствуй мир`;
let keyword = 'Здравствуй мир';
str = replaceKeyword(str, keyword);
alert(str)
Ответить с цитированием
  #4 (permalink)  
Старый 08.03.2021, 12:36
Интересующийся
Отправить личное сообщение для rsaburov Посмотреть профиль Найти все сообщения от rsaburov
 
Регистрация: 06.01.2014
Сообщений: 24

Большое спасибо, все получилось!
Ответить с цитированием
  #5 (permalink)  
Старый 08.03.2021, 13:44
Интересующийся
Отправить личное сообщение для rsaburov Посмотреть профиль Найти все сообщения от rsaburov
 
Регистрация: 06.01.2014
Сообщений: 24

Точнее удалилась подстрока Здравствуй мир
Но как удалить всю строку, которая эту подстроку содержит?
Ответить с цитированием
  #6 (permalink)  
Старый 08.03.2021, 13:54
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

rsaburov,
что на входе? что на выходе?
Ответить с цитированием
  #7 (permalink)  
Старый 08.03.2021, 14:02
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

rsaburov,
const removeKeyword = (str, keyword) => str.split(/\r?\n/).filter(a => !a.includes(keyword)).join('\n');
let str = `123 test
Здравствуй мир 123
123 test`;
let keyword = 'Здравствуй мир';
str = removeKeyword(str, keyword);
alert(str);

Последний раз редактировалось рони, 08.03.2021 в 14:05.
Ответить с цитированием
  #8 (permalink)  
Старый 08.03.2021, 16:53
Интересующийся
Отправить личное сообщение для rsaburov Посмотреть профиль Найти все сообщения от rsaburov
 
Регистрация: 06.01.2014
Сообщений: 24

вот наконец-то
123 test
123 test
Спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Flot Как передать переменную в функцию отрисовки точки на графике Ren jQuery 0 20.06.2012 14:16
запомнить переменную js в одном файле и использовать в другом. как? skalka Общие вопросы Javascript 2 28.09.2010 08:19
Как изменить скрипт, что бы им его можно было использовать для нужной страницы Nick50_70 Общие вопросы Javascript 0 28.04.2009 23:30
Можно ли как-то условие match() через переменную использовать? Tend Общие вопросы Javascript 1 16.03.2009 18:52
когда можно использовать for(var k in arr) scuter Общие вопросы Javascript 17 29.08.2008 15:34