Сообщение от 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, ["Лимон", "", "ы"], ["Яблок", "о", "и"]) );
Конечно, можно (и нужно) более элегантно и читаемо сделать, но мне лень - это сходу написано.