Показать сообщение отдельно
  #24 (permalink)  
Старый 20.02.2011, 15:48
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Я бы реализовал вот так:
String.prototype.index = function(x){
  var i1, i2, l1 = this.length, l2 = x.length;

  for(i1 = 0; i1 < l1; i1++)
    if(this[i1] === x[0])
      for(i2 = 0; i2 <= l2; i2++){
        if(i2 === l2) return i1;
        if(this[i1 + i2] === x[i2]) continue;
        break;
      };
  return -1;
};

var s1 = 'aababaO_o', 
    l1 = 'abaO', l2 = 'abac', l3 = 'aa', l4 = 'O_o'; 
alert( [ 
  [s1.index(l1), s1.indexOf(l1)],
  [s1.index(l2), s1.indexOf(l2)],
  [s1.index(l3), s1.indexOf(l3)],
  [s1.index(l4), s1.indexOf(l4)] 
].join('\n') );
Ответить с цитированием