690
 

Замена строки поиска на строку замены

Следующая функция работает аналогично функции 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'
Добавить в закладки:
Maklay.com - Большой каталог товаров для спорта и активного отдыха

Оставить комментарий

JSToolbox создан на основе WordPress