gpt4 book ai didi

javascript - JavaScript/jQuery 中优雅的多个字符替换

转载 作者:搜寻专家 更新时间:2023-11-01 05:06:53 25 4
gpt4 key购买 nike

我有一个 JS 字符串需要替换它的几个字符。

例如,对于输入字符串:

s = 'ABAC'

我想用 C 替换所有 B,反之亦然。但是,执行标准的正则表达式替换还不够好,因为 replace() 不应同步出现,而应在字符串的单次传递中出现。

>>> s.replace(/B/g, 'C').replace(/C/g, 'B')
'ABAB' // not good

有没有一种优雅的方法可以一次完成多个字符串replace()

(解决方案必须适用于任意字符替换)

最佳答案

var str = 'ABACACCBA',
out = str.replace(/[CB]/g, function(c) {
return {
"B" : "C",
"C" : "B"
}[c];
});

console.log(out); /* ACABABBCA */

您所要做的就是定义所有要匹配的字符,然后定义一个具有交换规则的对象。另一种方法也可以用这种方式完成

var str = 'ABACACCBA',
out = str.replace(/\w/g, function(c) {
return {
"B" : "C",
"C" : "B"
}[c] || c;
});

console.log(out); /* ACABABBCA */

在此示例中,您为每个匹配的字符执行该函数,但仅当您在对象中定义了一个条目时才进行交换(否则返回原始字符)。

它显然更昂贵(所以最好使用第一个示例)但在这种情况下,您可以避免列出要在正则表达式中匹配的所有字符。

关于javascript - JavaScript/jQuery 中优雅的多个字符替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9535521/

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