Показать сообщение отдельно
  #1 (permalink)  
Старый 20.08.2021, 10:32
Интересующийся
Отправить личное сообщение для Lexx32 Посмотреть профиль Найти все сообщения от Lexx32
 
Регистрация: 11.09.2013
Сообщений: 17

Поможите с переделкой кода
Всем привет, кодю на vb.net, соотв.. js не знаю - только начал учить, срочно понадобился код поиска в текстовой базе, в инете нашел пример функции, но поиск идет только по одному значению, а мне нужно (если введено предложение) чтоб обязательно включало все слова..
Это пример на обычном vb
function test()
dim i,x,col
dim val=document.getElementById('str').value;
var arr = split(val,' ');
for i=0 to ubound(Keyword)
     for x=0 to ubound(arr)
	if instr(keyword(i),arr(x))>0 then
	        col=split(keyword(i),"|")
		nStroka = '<tr><td>'+col(0)+'</td>';
		nStroka = nStroka + '<td>'+col(1)+'</td><td>'+col(2)+'</td><td>'+col(3)+'</td></tr>';
		dlm = dlm + nStroka;	
	end if
     next	
next
  dlm = dlm + '</table>';

Я попытался переделать это так
function test() {
 var val = document.getElementById('str').value;
 var arr = val.split(' ');
 var nStroka ='';
 for(var i = 0; i < Keyword.length; i++) {
	arr.forEach(function(elem) {
	if (Keyword[i].indexOf(elem) !== -1){
		nStroka = '<tr><td>'+col[0]+'</td>';
		nStroka = nStroka + '<td>'+col[1]+'</td><td>'+col[2]+'</td><td>'+col[3]+'</td></tr>';
		dlm = dlm + nStroka;	
	};
	};
  dlm = dlm + '</table>';
  document.getElementById('info1').innerHTML=dlm;
  document.getElementById('info0').innerHTML='   ' + Keyword [0];
 };

Это оригинал функции для поиска одного введенного значения
function test() {
 var val = document.getElementById('str').value;
 var dlm = '';
 var re = new RegExp('\^'+val,'i');
 dlm = '<table border=1 width=90%><th>зн0</th><th>зн1</th><th>зн2</th><th>зн3</th>';
 for(var i = 0; i < Keyword.length; i++) {
 var col = Keyword[i].split('|');
 if (re.test(Keyword[i])) {
 var nStroka ='';
 nStroka = '<tr><td>'+col[0]+'</td>';
 nStroka = nStroka + '<td>'+col[1]+'</td><td>'+col[2]+'</td><td>'+col[3]+'</td></tr>';
 dlm = dlm + nStroka;
 };
 };
 dlm = dlm + '</table>';
 document.getElementById('info1').innerHTML=dlm;
 document.getElementById('info0').innerHTML='   ' + Keyword [0];
 };

Прошу не пинать, только начинаю учить js...
Пожалуйста если не поможете то хотя бы направте что изменить..
Ответить с цитированием