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

Matre,
Дело не в браузерах, дело в алгоритме. Он работает неверно. Проверьте на любых примерах. Например:
String.prototype.index = function (str) {
	var j = -1, c = false, L1 = this.length, L2 = str.length - 1;
	for (var i = 0; i < L1; i++) {
		if (str.charAt(0) === this.charAt(i))
			c = true, j = i;
		if (c && i === j + L2)
			return j;
		if (c && str.charAt(i) != this.charAt(i + j))
			c = false;
	}
	return j;
};

// Где ищем
var s = 'A';
// Что ищем
var t = 'AB';

alert([
	'В строке "' + s + '"', 
	'ищем "' + t + '"', 
	'и находим: ' + s.index(t), // Должно быть -1, показывает 0
	'хотя там быть не должно: ' + s.indexOf(t) // Показывает -1
].join('\n'));
Ответить с цитированием