gpt4 book ai didi

javascript - 用两个数组中的值替换字符串

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

例如我有一个字符串:

var string = 'This is a text that needs to change';

然后我有两个数组。

var array1 = new Array('a', 'e', 'i', 'o', 'u');
var array2 = new Array('1', '2', '3', '4', '5');

现在,我要做的是用数组 1 检查字符串,并用数组 2 中的相应值替换字符串。因此,如果要执行此操作,我需要得到如下内容:

string = 'Th3s 3s 1 t2xt th1t n22ds to ch1ng2';

关于如何解决这个问题有什么想法吗?并且可能是一种有效的方法?因为我计划在大量数据上使用它。

编辑:

根据此处的答案,我编译了一个代码以允许上述操作,同时还允许一些特殊字符。检查一下。

var string = 'This is a text that needs to change';

var array1 = new Array('ee', 'a', 'e', 'i', 'o', ']');
var array2 = new Array('!', '1', '2', '3', '4', '5');

function escapeString(str){
return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
}

var re = new RegExp('(' + escapeString(array1.join('ૐ')) + ')', 'g');
var nx = new RegExp(re.source.replace(/ૐ/g, "|"), 'g');
alert(nx);
var lookup = {};
for (var i = 0; i < array1.length; i++) {
lookup[array1[i]] = array2[i];
}

string = string.replace(nx, function(c){
return lookup[c]
});

alert(string);

最佳答案

如果要替换的字符只是常规字母,在正则表达式中没有任何特殊含义,那么您可以创建一个仅匹配这些字符的正则表达式。这允许您将单个替换与翻译这些字符的函数一起使用:

var string = 'This is a text that needs to change';

var array1 = new Array('a', 'e', 'i', 'o', 'u');
var array2 = new Array('1', '2', '3', '4', '5');

var str1 = array1.join('');
var re = new RegExp('[' + str1 + ']', 'g');

string = string.replace(re, function(c){
return array2[str1.indexOf(c)]
});

演示:http://jsfiddle.net/Guffa/2Uc92/

关于javascript - 用两个数组中的值替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21394151/

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