| Сообщение от HekracoB | 
	| нужно тиражировать код | 
	
Нет, конечно. Вот, вникай:
function replace(string, source, replacer) {
	var x = source.slice(1).filter(notEmptyString);
	var ending = "(" + x.join("|") + ")";
	if (x.length == 1) ending += "?";
	var regExp = new RegExp(source[0] + ending, "g");
	
	return string.replace(regExp, handler);
	function handler(match, x) {
		return replacer[0] + replacer[source.indexOf(x || "")];
	}
	function notEmptyString(x) {
		return x;
	}
}
var test = "test Лимон test Лимоны test";
alert( replace(test, ["Лимон", "", "ы"], ["Яблок", "о", "и"]) );
Конечно, можно (и нужно) более элегантно и читаемо сделать, но мне лень - это сходу написано.