Содержит - не работает
-
В общем ресурс в список, там ссылка на профиль вконтакте.
Списки > Парсить строку - ID
Указываю переменную содержащую список
Далее содержит ID пишет falseЧто не так ? Кодировка UTF-8 везде
-
@freeliman Содержит(indexOf) в списках работает только по полному совпадение.
-
Не понял ? полное совпадение. Беру одну и ту же ссылку и проверяю, содержит список её или нет.
-
@freeliman Я тоже не особо понимаю программирование выраженное обычным языком )
-
Так и что делать ? Как проверить содержание ? У меня ссылок будет тысячи
-
@freeliman У меня работает. Давайте тестовый скрипт и файл ссылок
-
https://vk.com/alinacat5 https://vk.com/id416041287 https://vk.com/id509893152
Вот ссылки на каких то детей. Вот мне надо проверить есть ли в списке эти ссылки.
по сути два тхт файла. если один файл содержит такую ссылку, то хочу игнорировать её
-
Ну что работает ?
-
@freeliman работает
-
и как вы это сделали? через список парсить строку ? ведь я не могу обычным действием парсить строку, парсить двоеточие, в строке есть адрес который содержит :
и я использую другое действие.
ещё использую действие ресурс в список
-
@freeliman
Я кажется понял Вашу проблему.У вас список вида
url:текст
?Если так, то действие не будет работать, если искать
url
, так как требуется полное совпадение, то естьurl:текст
-
@freeliman
@drprime said in Содержит - не работает:@freeliman
Я кажется понял Вашу проблему.У вас список вида
url:текст
?Если так, то действие не будет работать, если искать
url
, так как требуется полное совпадение, то естьurl:текст
О чем я с самого начала и сказал )
-
@usertrue кто вам такое сказал? indexOf ищет подстроку указанную. НЕважно какая часть это.
-
var re = "alinacat5"; var text = "https://vk.com/alinacat5:Some text"; if(text.indexOf(re)){ log(true) } else { log(false) }
-
А вот сам экшн
Вернет false т.к он именно ищет по полному совпадению.
-
@qwaros said in Содержит - не работает:
@usertrue кто вам такое сказал? indexOf ищет подстроку указанную. НЕважно какая часть это.
Документация JS, например тут https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf#Description
@qwaros said in Содержит - не работает:
var re = "alinacat5"; var text = "https://vk.com/alinacat5:Some text"; if(text.indexOf(re)){ log(true) } else { log(false) }
Этот ваш пример про поиск по строке. А есть два разных IndexOf и речь была о массиве(списке)
@usertrue said in Содержит - не работает:
@freeliman Содержит(indexOf) в списках работает только по полному совпадение.
Вот пример как будет
var arr = ["привет мир", "яблоко"]; log(arr.indexOf("привет")>-1); //return false log(arr.indexOf("привет мир")>-1); //return true
-
@usertrue said in Содержит - не работает:
@qwaros said in Содержит - не работает:
@usertrue кто вам такое сказал? indexOf ищет подстроку указанную. НЕважно какая часть это.
Документация JS, например тут https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf#Description
@qwaros said in Содержит - не работает:
var re = "alinacat5"; var text = "https://vk.com/alinacat5:Some text"; if(text.indexOf(re)){ log(true) } else { log(false) }
Этот ваш пример про поиск по строке. А есть два разных IndexOf и речь была о массиве(списке)
@usertrue said in Содержит - не работает:
@freeliman Содержит(indexOf) в списках работает только по полному совпадение.
Вот пример как будет
var arr = ["привет мир", "яблоко"]; log(arr.indexOf("привет")>-1); //return false log(arr.indexOf("привет мир")>-1); //return true
Для массива да, но что мешает собрать список (массив) в строку да тестануть? Если массив небольшой, потом если нашли соответствие, перебираем массив в поисках нужного ключа, если нет идем дальше
-
@qwaros От скуки сделал тест скорости. Сравнил метод join + indeOf и цикл for + indexOf
var testArr = []; var strTest = "Цена от 50000"; for(i=1;i<=100000;i++) { testArr.push("Пишу скрипты любой сложности, очень дорого. Цена от " +i); }; var resultTime = {}; function speedTest(func) { return function() { var startTime = Date.now(); func.apply(null,arguments); if(!resultTime[func.prototype.constructor.name]) resultTime[func.prototype.constructor.name] = 0; resultTime[func.prototype.constructor.name] +=Date.now() - startTime; }; }; function strJoin(arr,str) { return arr.join(",").indexOf(str); }; function cycle(arr,str) { for(i = arr.length - 1;i>=0;i--) { if(arr[i].indexOf(str)>=0) return true; }; }; var speedJoin = speedTest(strJoin); var speedCycle = speedTest(cycle); for (i = 0;i<10;i++) { speedJoin(testArr,strTest); }; for (i = 0;i<10;i++) { speedCycle(testArr,strTest); }; for(func in resultTime){ console.log("Среднее время функции: " + func + ":" + resultTime[func]/10 + "ms"); };
Результат
Среднее время функции: strJoin:49ms
Среднее время функции: cycle:7.7ms