 
			
				21.03.2013, 13:44
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Вариант частичного совпадения ... 
var massiv = ["яблочный пирог", "соус_острый", "яблоки_красные"];
function findPartial(a, s) {
    while (s) {
        var reg = new RegExp(s)
        for (var i = 0; i < a.length; i++)
            if (reg.test(a[i])) return i;
        s = s.slice(0, -1)
    }
    return -1;
}
alert(findPartial(massiv, "яблокo"));
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				21.03.2013, 13:45
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 х.з 
				
				
				
				
	
 
 
			 | 
			  | 
			
				
				
					Регистрация: 21.11.2010 
					
					
					
						Сообщений: 4,588
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от rgl
			
		
	 | 
 
	
		dmitriymar, 
Из вопроса, а также из приведенного примера можно предположить, что под частичным совпадением понимается вхождение: 
Сообщение от фонарик Посмотреть сообщение 
Подскажите пожалуйста, как проверить есть ли элемент в массиве, используя в поиске часть его имени?.....
	 | 
 
	
 
 Здесь больше к терминологии: 
Полное вхождение  
Частичное вхождение 
Полное совпадение 
Частичное совпадение -  http://ru.wikipedia.org/wiki/%D0%A0%...B9%D0%BD%D0%B0 чем меньше расстояние тем выше частичное совпадение совпадение .
 
В вашем же случае , находится  полное вхождение
var massiv = ["яблочный пирог", "соус_острый", "яблоки_красные"];
 
function findPartial(a, s) {
    while (s) {
        var reg = new RegExp(s)
        for (var i = 0; i < a.length; i++)
            if (reg.test(a[i])) return i;
        s = s.slice(1, -1)
 
    }
 
    return -1;
}
 
alert(findPartial(massiv, "яблосоус"))
тоже такой момент, и почемуто мне кажется что искомое вхождение всё таки больше похоже на 1 или 3 элемент поискового подмножества    
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось dmitriymar, 21.03.2013 в 14:03.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				21.03.2013, 13:51
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 28.02.2011 
					
					
					
						Сообщений: 351
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
var massiv = ["яблочный пирог", "соус_острый", "яблоки_красные"];
function findPartial( a, s )
{
  var i;
  if( s.length > 3 ) {
    i = s.length - 3;
    var r = s.substr( i, 3 );
    while( --i >= 0 )
      r += "|" + s.substr( i, 3 );
    r = new RegExp( r );
    for( i = 0; i < a.length; ++i )
      if( r.test( a[i] ) )
        return i;
  } else {
    for( i = 0; i < a.length; ++i )
      if( a[i].indexOf( s ) >= 0 )
        return i;
  }
  return -1;
}
alert( findPartial( massiv, "острота" ) );
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
	
		
	
		
		
		
			
			 
			
				21.03.2013, 13:57
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от dmitriymar
			
		
	 | 
 
	| 
		3 элемент поискового подмножества
	 | 
 
	
 
 где вы увидели 3? 3элемент  это как раз 2 индекс  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				21.03.2013, 13:59
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 х.з 
				
				
				
				
	
 
 
			 | 
			  | 
			
				
				
					Регистрация: 21.11.2010 
					
					
					
						Сообщений: 4,588
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 рони, 
 да , запарился . в любом случае вариант на расстояниях   решение гораздо правильнее 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				21.03.2013, 14:00
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 28.02.2011 
					
					
					
						Сообщений: 351
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 рони, 
Все классно и круто, только не понятно зачем сначала искать более длинную часть, если все равно все определяется тем, найдется ли более короткая. Т.е. можно сразу искать только первую букву. Да и регэкспы без необходимости использовать зачем? 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				21.03.2013, 14:04
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от rgl
			
		
	 | 
 
	| 
		если все равно все определяется тем, найдется ли более короткая.
	 | 
 
	
 
 в каком месте? поиск прекратится на самом большом совпадении  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				21.03.2013, 14:05
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 х.з 
				
				
				
				
	
 
 
			 | 
			  | 
			
				
				
					Регистрация: 21.11.2010 
					
					
					
						Сообщений: 4,588
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		рони, 
 поправил тест . Сможете обосновать почему соус более релевантен чем яблоко?) яблоко ведь стоит в начале слова , и вполне логично , что более подходящий вариант связан с яблоком для стран с письменностью слева направо    
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось dmitriymar, 21.03.2013 в 14:07.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				21.03.2013, 14:07
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от rgl
			
		
	 | 
 
	| 
		Да и регэкспы без необходимости использовать зачем?
	 | 
 
	
 
 а как без них?  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |