gpt4 book ai didi

javascript - 在 JavaScript 中解析文本

转载 作者:行者123 更新时间:2023-11-30 07:24:10 24 4
gpt4 key购买 nike

我正在编写一个将文本作为输入并在文本中执行替换的函数。例如,我寻找“蓝色”的所有实例并将其替换为“红色”。我使用 regexp 来检测我正在寻找的字符串,它由 (text).replace 函数使用。问题是我做了很多 text.replace,我想要一种逐个解析文本字符串的方法,如果它匹配我想要的任何内容,我将执行替换(而不是寻找“蓝色”在整个文本中,然后是“绿色”在整个文本中,依此类推)。我相信这样效率更高,但我该如何准确地做到这一点?

提前致谢。

最佳答案

您也可以使用正则表达式来做到这一点,并寻找带有回调的多个子字符串,以用相同的正则表达式替换每个子字符串。

这会扫描一次字符串,但回调当然会降低效率,具体取决于您在回调中执行的操作。

text = text.replace(/(blue|red|green)/g, function(x) {
var ret = '';
switch (x) {
case 'blue' :
ret = 'azul';
break;
case 'green' :
ret = 'verde';
break;
case 'red' :
ret = 'rojo';
break;
default :
ret = 'color';
}
return ret;
});

有点冗长,但你明白了。
这可以扩展,例如使用 map 进行替换

var replacements = {
'blue' : 'azul',
'green': 'verde',
'red' : 'rojo'
}

var reg = new RegExp('(' + Object.keys(replacements).join('|') + ')','g');

text = text.replace(reg, function(x) {
return replacements[x];
});

关于javascript - 在 JavaScript 中解析文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23993885/

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