Следующая функция работает аналогично функции str_replace в PHP. Эта функция возвращает строку или массив subject, в котором все вхождения search заменены на replace:
function replace(search, replace, subject){
var ra = replace instanceof Array,
sa = subject instanceof Array,
l = (search = [].concat(search)).length,
replace = [].concat(replace),
i = (subject = [].concat(subject)).length;
while(j = 0, i--)
while(subject[i] = subject[i].split(search[j]).join(ra ? replace[j] || "" : replace[0]), ++j < l);
return sa ? subject : subject[0];
}
Если subject - массив, поиск и замена производится в каждом элементе этого массива, и возвращается также массив. Если и search , и replace - массивы, то replace() использует все значения массива search и соответствующие значения массива replace для поиска и замены в subject. Если в массиве replace меньше элементов, чем в search, в качестве строки замены для оставшихся значений будет использована пустая строка. Если search - массив, а replace - строка, то replace будет использована как строка замены для каждого элемента массива search.
Примеры использования:
var vowels = ["a", "e", "i", "o", "u", "A", "E", "I", "O", "U"]; var onlyconsonants = replace(vowels, "", "Hello World of JavaScript"); // onlyconsonants = 'Hll Wrld f JvScrpt'; var letters = ['a', 'p']; var fruit = ['apple', 'pear']; var text = 'a p'; var output = replace(letters, fruit, text); // output = 'apearpearle pear'
