Можно ли использовать переменную в RegExp?
Имеется RegExp:
string.replace(new RegExp(".*Ключевое слово.*\r\n",'g'),"") которое удаляет строку содержащую подстроку Ключевое слово Можно ли заменить его на переменную javascript? var keyword = "Здравствуй мир"; string.replace(new RegExp(".*keyword.*\r\n",'g'),""); Так чтобы удалялась строка, содержащая подстроку Здравствуй мир |
Цитата:
|
Экранирование специальных символов и создание 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)
|
Большое спасибо, все получилось!
|
Точнее удалилась подстрока Здравствуй мир
Но как удалить всю строку, которая эту подстроку содержит? |
rsaburov,
что на входе? что на выходе? |
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);
|
вот наконец-то
123 test 123 test Спасибо! |
| Часовой пояс GMT +3, время: 22:14. |