У меня есть следующая строка.
var str = "abc, abcd, abc, abcf, abc, abc";
Я хочу удалить abc
из заданной строки с помощью , (space)
. По сути, я хочу вывести что-то вроде ниже.
var output = "abcd, abcf";
Примечание: - По возможности дать решение для регулярных выражений (только с одной заменой).
Вещи, которые я пробовал: -
1) 1-й подход
var str = "abc, abcd, abc, abcf, abc, abc";
var w = "abc";
var output = str.split(", ").filter(x => !(x === w)).join(", ");
console.log(output);
Здесь я использовал split
, затем filter
, а затем join
, в основном 3 операции с массивами. (что Я думаю не очень хорошо, если речь идет о производительности).
2) 2-й подход
var str = "abc, abcd, abc, abcf, abc, abc";
var w = "abc";
var regex = new RegExp("\\b" + w + "\\b", "ig");
var output = str.replace(regex,"");
output = output.replace(/, , /ig,", ");
output = output.replace(/^, |, $/ig,"");
console.log(output);
Здесь я использую три раза replace
.
Можно ли добиться проще?