2013-03-28 3 views
2

Я самоучка любитель в JS, и подумал, что пора, наконец, зарегистрируйтесь здесь :)Строка поиска Javascript вопрос

Я пытаюсь (и неисправного), чтобы написать скрипт, который принимает одну строку из из массива строк и проверяет, содержит ли он ключевые слова переменной в раскрывающемся меню. Мой код: http://jsfiddle.net/apMsc/1/

Я думаю, что есть конфликт с выпадающим меню и поиском/indexOf. Мой код работает, только если ключевое слово находится в начале строки. Если ключевое слово захоронено глубже, search() возвращает -1 (я также пробовал indexOf).

Например:

document.getElementById('result').innerHTML = test3array[0].indexOf(drop1); 

Где test3array [0] является строкой [email protected]@ [email protected]@ [email protected]@ value2 и drop1 является переменной из меню.

Сценарий будет работать, если я ищу значение value1, но не для value2, если не переместить его в начало. Я также пробовал использовать new RegExp(drop1) по предыдущим темам здесь, но это не сработало.

Любые советы были бы наиболее ценными.

ответ

0

Это потому, что и test3array[0], и drop1 начинаются с символа новой строки. Если вы хотите избавиться от новых строк, вызовите trim() по этим переменным. Например, это работает:

document.getElementById('result').innerHTML = 
    test3array[0].trim().indexOf(drop1.trim()); 

Edit: Вот несколько советов задавать вопросы: Вы пытались определить часть вашего кода, который не работает и разместил его здесь. Поиск минимального теста, прежде чем задавать вопрос, является хорошей идеей и часто даже приводит вас к решению, но когда вы это делаете, вы также должны проверить, воспроизводит ли ваш минимальный тестовый файл ошибку. Само по себе правильная линия document.getElementById('result').innerHTML = test3array[0].indexOf(drop1);.

+1

Справедливое предупреждение: обрезка не поддерживается IE8 – MaxArt

+0

Это сделало трюк, спасибо :) Это было * предположительно *, чтобы быть упрощенным примером, после того как я постепенно раздели все остальное. Я думаю, это может быть сведено к минимуму еще ... – Alex

+0

@Alex Это было упрощено, просто неправильно. : D – thejh

Смежные вопросы