фонарик, а ничего, что твоя str нифига не строка, а массив?
Смотри доку по функции String.prototype.match() |
indexOf ищет теперь и в массивах (как будто когда не искал то не искал в массивах типа string)
Однако серьезность автора темы рушится в моих глазах под строчками for(i=0; i<arr.length; i++){ var string = document.getElementById('itemKinds_txt').value; За каким членом-корреспондетом искать каждый раз один и тот же элемент, брать валуе и ничего со string не делать. И конечно надо знать что в str будет массив чтобы правильно пользоваться поиском в этом массиве. |
рони,
Я старался как можно точнее описать проблему, но видимо плохо старался. Однако ерунды я не писал, и в переменной 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. |