Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.02.2014, 00:45
Кандидат Javascript-наук
Отправить личное сообщение для фонарик Посмотреть профиль Найти все сообщения от фонарик
 
Регистрация: 23.02.2013
Сообщений: 127

Не ищется слово в тексте :(
Всем привет. Подскажите пожалуйста, где ошибка. Что бы я не писал в скобках после RegExp все бестолку, ничего не находится Даже любую букву не ищет. А нужно взять каждый элемент из массива arr и просто проверить есть ли такое же слово в предложении.


<script>
function poisk (){
var str = 'Однажды вечером Вадим увидел у горизонта яркий свет'
var arr = ["Вадим", "пробел", "вечером", "земля"]

for(i=0; i<arr.length; i++){
	var re = new RegExp(arr[i])
	var str2 = str.indexOf(re)
	alert(str2)	
	}
}
</script>

<body>
<div style="border:1px solid blue; position:absolute; cursor:pointer" onclick="poisk()">onclick="poisk()</div>
Ответить с цитированием
  #2 (permalink)  
Старый 24.02.2014, 01:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

фонарик,
строка нужна а не RegExp
(function poisk (){
var str = 'Однажды вечером Вадим увидел у горизонта яркий свет'
var arr = ["Вадим", "пробел", "вечером", "земля"]

for(i=0; i<arr.length; i++){
	var str2 = str.indexOf(arr[i])
	alert(str2)
	}
})()

Последний раз редактировалось рони, 24.02.2014 в 01:02.
Ответить с цитированием
  #3 (permalink)  
Старый 24.02.2014, 01:04
Кандидат Javascript-наук
Отправить личное сообщение для фонарик Посмотреть профиль Найти все сообщения от фонарик
 
Регистрация: 23.02.2013
Сообщений: 127

рони,
я здесь сильно упростил задачу, на самом деле у меня в длинном регулярном выражении еще должна присутствовать переменная. Вне цикла for поиск находит что нужно, а вот в этом случае - никак нет.
Ответить с цитированием
  #4 (permalink)  
Старый 24.02.2014, 01:05
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

фонарик,
где код?
Ответить с цитированием
  #5 (permalink)  
Старый 24.02.2014, 01:23
Кандидат Javascript-наук
Отправить личное сообщение для фонарик Посмотреть профиль Найти все сообщения от фонарик
 
Регистрация: 23.02.2013
Сообщений: 127

вот кусочек кода. По сути у меня есть большой кусок текста со значениями и словами. По типу идентификатор и куча свойств и его значений. В этом большом куске кода такие идентификаторы идут следом один за другим. Я же беру из массива идентификатор и из общего большого куска текста в котором они идут друг за другом - выделяю только тот кусок, который соответствует этому идентификатору. Затем мне в этом отдельном куске нужно проверить, есть ли там определенное свойство. Вот както так

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.indexOf(itp_type_[choise]);//есть ли в этом отдельном куске свойство?
	alert(valid)
}


И вот в 10й строке почему-то всегда получается что такого свойства нет хотя оно там есть. Да и вообще никакой символ не находит, не говоря уж о значении.

Последний раз редактировалось фонарик, 24.02.2014 в 01:29.
Ответить с цитированием
  #6 (permalink)  
Старый 24.02.2014, 02:03
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

фонарик,
может так ?
var re = new RegExp(arr[i] + '[^\\n]*');
Ответить с цитированием
  #7 (permalink)  
Старый 24.02.2014, 02:12
Кандидат Javascript-наук
Отправить личное сообщение для фонарик Посмотреть профиль Найти все сообщения от фонарик
 
Регистрация: 23.02.2013
Сообщений: 127

рони,
Регулярное выражение тут совсем ни причем. В 8 строке у меня в переменной str если ее вывести в алерт - кусок текста содержащий идентификатор с его свойствами и значениями. Т.е регулярное выражение выделило нужный блок текста корректно. А вот в 10й строке при попытке найти что-либо в этой переменной - ничего не получается. Вот в чем проблема. Не ищет ни значения ни даже простой любой символ.

Последний раз редактировалось фонарик, 24.02.2014 в 02:16.
Ответить с цитированием
  #8 (permalink)  
Старый 24.02.2014, 02:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

фонарик,
itp_type_[choise] это что или нужно догадатся? недостаточно информации делайте макет иначе всё это гадание.
Ответить с цитированием
  #9 (permalink)  
Старый 24.02.2014, 02:22
Кандидат Javascript-наук
Отправить личное сообщение для фонарик Посмотреть профиль Найти все сообщения от фонарик
 
Регистрация: 23.02.2013
Сообщений: 127

рони,
я же написал, что не ищется не то чтобы это значение, а вообще ничего. Т.е если вместо этого написать
var valid = str.indexOf('a')

то все равно ничего не изменится. Переменная valid будет всегда -1, т.е даже букву "a" не найдет в этом тексте, а уж она там точно есть.
Ответить с цитированием
  #10 (permalink)  
Старый 24.02.2014, 02:36
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

фонарик,
непишите ерунды str у вас скорее всего null при таком RegExp -- код где ?????
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление первого слова в тексте iproger Общие вопросы Javascript 6 12.08.2013 01:31
Вырезать слово в тексте и вывести его kilogram Серверные языки и технологии 4 29.03.2012 01:41
Поиск в тексте javascript jQuery 3 31.05.2011 11:40
Получить слово на onclick AlexDodonov Events/DOM/Window 7 26.02.2010 21:46
Выделить целое слово на русском с помощью регулярного выражения! timdenice Общие вопросы Javascript 6 11.02.2010 12:59