gpt4 book ai didi

javascript - 如何交换字符串中的子字符串?

转载 作者:数据小太阳 更新时间:2023-10-29 06:03:28 26 4
gpt4 key购买 nike

我正在尝试交换给定字符串中所有出现的一对子字符串。

例如,我可能想将所有出现的“咖啡”替换为“茶”,将所有出现的“茶”替换为“咖啡”。

这是我第一个想到的:

var newString = oldString.replace(/coffee/g, "__").replace(/tea/g, "coffee").replace(/__/g, "tea");

它大部分时间都有效,但如果我的输入字符串包含子字符串“__”,它将无法正常工作。

我正在寻找无论我提供什么输入都有效的东西,所以我想了更多并想出了这个:

var pieces = oldString.split("coffee");
for (var i = 0; i < pieces.length; i++)
pieces[i] = pieces[i].replace(/tea/g, "coffee");
var newString = pieces.join("tea");

它工作正常,但有点丑陋和冗长。我试图想出更简洁的东西,我使用了 map function内置于 jQuery 中以得出以下结论:

var newString = $.map(oldString.split("coffee"), function(piece) {
return piece.replace(/tea/g, "coffee");
}).join("tea");

这样更好,但我仍然觉得有一些非常简单的方法没有出现在我的脑海中。这里有人知道更简单的方法吗?

最佳答案

怎么样

theString.replace(/(coffee|tea)/g, function($1) {
return $1 === 'coffee' ? 'tea' : 'coffee';
});

(我个人认为交换咖啡和茶是犯罪行为,但那是你的事)

关于javascript - 如何交换字符串中的子字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7151466/

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