Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   несрабатывает .indexOf (https://javascript.ru/forum/jquery/37160-nesrabatyvaet-indexof.html)

Kvark 09.04.2013 20:38

несрабатывает .indexOf
 
конец рабочего дня - мозг почти кипит - тупо не вижу в чем проблема:
данно массив строк, беру значение из дива и сравниваю со значением в массиве - а в ответ -1!!! Что за чертовщина?

var currentMsg = $('#msg').html();
var fileMsg = myArray[2];
console.log(currentMsg.indexOf(fileMsg));


В масиве третий элемент = "тест", текущий мсг = "Это тест", если вместо масива подсовываю переменую = "тест" - все ок выдает вхождение, это что то с элементом в массиве или как?

dmitriymar 09.04.2013 20:46

локали одинаковые(сравнением кодов символов можно выяснить) ? Не перемешаны ли русские символы и латинские?

Kvark 09.04.2013 20:51

да нет, тут у меня такая логика - в файле находиться собщение что нужно показать, проверка если собщение не загружено - загрузить, следующим шагом загружаю снова из файла (может быть уже другое собщение) но даже если тоже - то утверждает что "новое" не в ходит в "старое" хотя собщение то тоже самое!
через .search тоже самое, такое ощущение что они с элементами масива не срабатывают... такое может быть? jquery последней версии.

dmitriymar 09.04.2013 20:58

Цитата:

Сообщение от Kvark
такое ощущение что они с элементами масива не срабатывают... такое может быть? jquery последней версии.

var line ='Это тест';
var arr =['тест','лето','зима'];
alert(line.indexOf(arr[0]));


когда это indexOf стал оператором джиквери?

ещё раз: ошибка либо в использовании разных локалей, кодировок либо в смешивании русских и латинских символов.

danik.js 10.04.2013 02:34

Цитата:

Сообщение от Kvark
jquery последней версии.

Куда катится мир... Интересно как реагируют создатели jQuery на текущую ситуацию..

Kvark 10.04.2013 13:07

что то все никак не пойму в чем прикол :( подозреваю что может какой символ \n затесался?

значение в котором ищю:
<div class="str_move str_origin" style="left: 618.5px;"> ::: Simple TEST msg ::: </div>

а то что беру из файла - сплитом (по \t) делю на 3 части и забираю в массив, 3 елемент последний в файле, вот подозреваю что к нему что то там дополнительно "прилипло" может подскажете как убедиться что там только текст и нету каких тех. символов типа перевода строки? Сам текст строго английский - кодировки не применяються, считываеться из обычного текстового файла...

упд. Да походу так и есть, в сообщение добавлен \n и потому не срабатывает бо в источнике нету его, выяснил просто добавив в файл дополнительный елемент - и стало работать - уточняю вопрос:
как строку очистить от спец символов - типа табуляции и перевода строки?

Kvark 10.04.2013 15:21

решение найдено: .replace(/(\n(\r)?)/g, ' ');


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