Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не ищется слово в тексте :( (https://javascript.ru/forum/misc/45326-ne-ishhetsya-slovo-v-tekste.html)

danik.js 24.02.2014 06:31

фонарик, а ничего, что твоя str нифига не строка, а массив?
Смотри доку по функции String.prototype.match()

kostyanet 24.02.2014 10:45

indexOf ищет теперь и в массивах (как будто когда не искал то не искал в массивах типа string)

Однако серьезность автора темы рушится в моих глазах под строчками

for(i=0; i<arr.length; i++){
 var string = document.getElementById('itemKinds_txt').value;


За каким членом-корреспондетом искать каждый раз один и тот же элемент, брать валуе и ничего со string не делать.

И конечно надо знать что в str будет массив чтобы правильно пользоваться поиском в этом массиве.

фонарик 24.02.2014 14:44

рони,
Я старался как можно точнее описать проблему, но видимо плохо старался. Однако ерунды я не писал, и в переменной str у меня совсем не null как вы предполагаете, а, как я уже писал ранее - команда алерт выводит в ней правильный кусок текста (много буковок).

danik.js,
Я не знаю как вы это делаете, но вы совершенно точно указали на ошибку, большое вам спасибо :)

kostyanet,
Я не понимаю почему вы акцентрируете внимание на серьезности автора темы, когда как предмет данного топика состоит совсем в другом. У меня нет математического образования и уж в особенности - в программировании. Что такое html и javascript я знаю в общей сложности не более 3-5 месяцев. Я нуб и ламер, если вам стало легче :)
Однако вы совсем не увидели что с переменной string работает регулярное выражение, а говорите что ничего с ней не делается. И да, вы верно подметили что может быть и не совсем логично в цикле каждый раз считывать не изменяющееся значение. Спасибо вам за замечание.

В итоге, после поправок господина danik.js в строку:
var str2 = str[0].indexOf(re) - все заработало правильно:

function sortingItemsByType(u){
var choise = u.options[u.selectedIndex].value;//получаем номер выбранного элемента в списке
var arr = document.getElementById('results_area').value.split(', ')//делаем массив из текста нижнего поля, его элементы будем искать в блоке текста

for(i=0; i<arr.length; i++){
	var string = document.getElementById('itemKinds_txt').value;//большой блок текста
	var re = new RegExp('\\[ "' + arr[i] + '[^\n]*')
	var str = string.match(re)//получаем конкретный блок текста из большого, содержащий искомый предмет

	var valid = str[0].indexOf(itp_type_[choise]);//есть ли в этом отдельном куске свойство?
	alert(valid)
}


Часовой пояс GMT +3, время: 07:55.