Zamień ciąg na wartości z dwóch tablic

Mam ciąg znaków na przykład:

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

A potem mam dwie tablice.

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

Teraz to, co muszę zrobić, to sprawdzić ciąg z tablicą 1 i zastąpić ciąg odpowiednią wartością z tablicy 2. Tak więc za pomocą funkcji, aby to zrobić, muszę uzyskać coś takiego:

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

Jakieś pomysły na rozwiązanie tego problemu? I może być skutecznym podejściem? Ponieważ planuję używać tego na ogromnych porcjach danych.

EDYTOWAĆ:

Na podstawie odpowiedzi tutaj skompilowałem kod, który pozwala na powyższe operacje, a jednocześnie dopuszcza kilka znaków specjalnych. Sprawdź to.

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 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);
amp;"); } 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);

questionAnswers(6)

yourAnswerToTheQuestion