Показать сообщение отдельно
  #3 (permalink)  
Старый 06.10.2010, 11:19
Профессор
Отправить личное сообщение для with-love-from-siberia Посмотреть профиль Найти все сообщения от with-love-from-siberia
 
Регистрация: 14.12.2009
Сообщений: 155

Или, например, так. Но для чего все это?
function str_replace(search, replace, string)
{
	// 1. все должно быть массивами
	search = [].concat(search);
	replace = [].concat(replace);

	// 2. выровнять массивы
	var len = replace.length - search.length;

	var p_last = search[search.length - 1];

	// 2.1. если массив строк поиска короче
	for (var i = 0; i < len; i++) {
		search.push(p_last);
	}

	// 2.2. если массив строк замены короче
	for (var i = 0; i < -len; i++) {
		replace.push('');
	}

	// 3. непосредственная замена
	var result = string;
	for (var i = 0; i < search.length; i++) {
		result = result.split(search[i]).join(replace[i]);
	}
	return result;
};

var x = 'abc aaa defxyz';
var y = str_replace(
	['a', 'b', 'c'],
	['x', 'y', 'z'], 
	x);

alert([x, y]);

Последний раз редактировалось with-love-from-siberia, 06.10.2010 в 11:29.
Ответить с цитированием