image.png
Ошибка выполнения JS
-
Есть переменная
LINK: "<a rel="" data-bind="" target="" href="">text</a>"
Есть скрипт который возвращает text
[[LINK]].split(/<a>([^])</a>/)[0]
записывающий результат в RESULT
После выполнения RESULT присваевается пустое значение ""
Как я понимаю, в скрипте возникает исключение. Как отловить его, непонятно в чем дело совсем. -
@derkote said in Ошибка выполнения JS:
<
ситуация не совсем для сплита. Тут или индексОФ или Регекс
вот с индексОФ пример[[LINK]].substring([[LINK]].indexOf('">')+2, [[LINK]].length-4)это вернет text
зы: переменная result зарезервирована БАСом.пример с регекс
[[LINK]].match(/>(.+?)</)[1] -
[[LINK]].match(/>(.+?)</)[1]Спасибо!) А в данном случае это ж будет первое и единственное вхождение, там не [0] должно быть?
indexOf('">')Нужно ли кавычку забэкслешить?
Типо так:indexOf( ' \"> ' ) -
@derkote кавычку не нужно ескейпить, потому что они обрамлены одинарными кавычками. Если бы там были вместо
"такие'то обрамить нужно было бы двойными".там должно быть именно [1], все так, как я написал. Если ты укажешь 0 то получишь вместо
textэто>text<и вообще для таких случаем уже придумали для нас удобные способы, работать с регулярками можно и без JS кода: 0_1482503394978_asdaw.xml
-
@out
[[LINK]].substring([[LINK]].indexOf('">')+2, [[LINK]].length-4))[17:25:16] Поток №1 : SyntaxError: Parse error Номер строки:5 Во время выполнения скрипта { page().script(VAR_LINK.substring(VAR_LINK.indexOf('">')+2, VAR_LINK.length-4)),function(){ VAR_SAVED_SCRIPT_RESULT_NAME = _result() section_start("test", 1,function(){ })})} -
Ну не один из примеров выше через "Яваскрипт" так и не заработал, а через "Выполнить код" все работает.
В этой версии чтобы передавать переменные в действие "Яваскрипт" их нужно эскейпить. Уже исправил, в следующей(будет в понедельник) должно работать и так
[[LINK]].match(/\>(.*?)\<\/a\>/)[1]Но лучше для регулярных выражений использовать действия "Выполнить код" или модулем "Регулярные выражения" или Xpath