gpt4 book ai didi

javascript - 如何从给定字符串中删除带有额外分隔符的单词?

转载 作者:行者123 更新时间:2023-12-02 08:05:15 26 4
gpt4 key购买 nike

我有以下字符串。

var str = "abc, abcd, abc, abcf, abc, abc";

我想用 , (space) 从给定的字符串中删除 abc。基本上,我想要如下所示的输出。

var output = "abcd, abcf";

注意:- 如果可能,请提供正则表达式解决方案(仅替换一个)。

我尝试过的事情:-

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) 第二种方法

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

有没有可能用更简单的方式实现?

最佳答案

您可以使用此.replace 代码:

var w = 'abc';

var str = "abc, abcd, abc, abcf, abc, abc";

str = str.replace(new RegExp("\\b" + w + "(?:, |$)", "g"), '')
.replace(/, $/, '');

console.log(str);
//=> "abcd, abcf"

  • 在第一个 .replace 调用中,我们将单词 abc 替换为尾随 ", "
  • 我们首先有效地使用这个正则表达式:/\babc(?:, |$)/
  • 在第二个 .replace 调用中,我们删除了字符串中所有剩余的尾随 ", "
  • 我们第二次有效地使用这个正则表达式:/, $/ 删除任何遗留的 ", "

Performance Test Link

关于javascript - 如何从给定字符串中删除带有额外分隔符的单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52370221/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com