Показать сообщение отдельно
  #1 (permalink)  
Старый 26.10.2010, 09:52
Интересующийся
Отправить личное сообщение для SvetozarPNZ Посмотреть профиль Найти все сообщения от SvetozarPNZ
 
Регистрация: 26.10.2010
Сообщений: 16

Создание фильтра базы ссылок с помощью регулярных выражений
Есть два текстовых поля. В одном ссылки в другом маски. Как можно сделать фильтр ссылок, чтобы по заданным маскам удалялись лишние ссылки.
Пример.
База ссылок
441.vsemp.ru
52nnov.ucoz.ru
63sam.ucoz.ru
63tol.ucoz.ru
73.ucoz.ru
8999.ru
anshum.narod.ru
905.ucoz.ru
abon.net.ua
база масок
.ucoz.
narod.ru

Результат работы скрипта
441.vsemp.ru
8999.ru
abon.net.ua

Я пытался составлять регулярное выражение из строчного значения добавляя слэши, но не работает. Видимо не преобразуется строка в регекс.
function filter(){
	var mass = new Array();
	var base = new Array();
	var re = /[a-z0-9\.\-]+/gi;
	var str1;
	str = document.getElementsByName('base')[2].value;
	filterbase = str.match(re);
	for (i=0; i<filterbase.length; i++)
	{
		str1 = "/"+"filterbase[i]"+"/";
		for (k=0; k<mass.length; k++)
		{
			if (mass[k].search(str1)!=-1)
			{
				mass.splice(k,1);
			}
		}
	}
	document.getElementsByName('base')[1].value = mass.join('\n');
}


Я мог бы прогонять цикл по каждой строке текстового поля базы с целью найти подстроку-маску, но это значительно замедляет скрипт (ощутимо при 2000+ ссылок).

Есть ли идеи, решения?
Ответить с цитированием