Можно ли использовать переменную в 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, время: 05:01. |