Корежит выражение



  • Корежит выражение такого типа при установке переменной и получается каша в скрипте результате.

    [[NEW_VARIABLE]][[[NEW_VARIABLE]].length-1].split('"')[0]

    И есть ли еще какие-то варианты работы со строками, кроме регулярок и разбиения на список? Например, можно было бы несколько простых функций ввести: поиск подстроки в строке, удаления строки с позиции, копирование подстроки с позиции.



  • Тут не должно быть второе вхождение переменной не VAR_NEW_VARIABLE, а NEW_VARIABLE ?

    По сути это что? Взять последнюю строку из массива строк, и из нее - первый компонент, если разделитель
    двойная кавычка?



  • @daemons

    Да, ошибочка. [[NEW_VARIABLE]][[[NEW_VARIABLE]].length-1].split('"')[0]

    По сути это что? Взять последнюю строку из массива строк, и из нее - первый компонент, если разделитель двойная кавычка?

    Взять последнюю строку из списка строк, и эту строку разбить в список разделителем двойная кавычка и взять первую строку.



  • Выход - всего-то поставить пробельчик между "[", выполняющей роль индекса массива, и "[[", обрамляющими название переменной. Получается прекрасный скрипт типа такого:

       section_start("", 472569087)!
         VAR_NEW_VARIABLE = []
         VAR_NEW_VARIABLE.push("123\u0022456\u0022789")
         VAR_NEW_VARIABLE.push("abc\u0022def\u0022hij")
         VAR_NEW_VARIABLE.push("ABC\u0022DEF\u0022HIJ")
       section_end()!
    
       section_start("", 977009027)!
         VAR_AAA = VAR_NEW_VARIABLE[ VAR_NEW_VARIABLE.length-1].split('"')[0]
       section_end()!
    
    

    Парсер/кодген BAS в этом смысле очень простой. Для него любая комбинация "[[" как красная тряпка для быка. Сразу накидывается конвертировать в VAR_ переменную. Ставим пробел и подталкиваем его в нужном направлении.



  • @daemons

    Ясно спасибо, но лучше через встроенные джаваскрипт возможности буду парсить, так меньше ресурсов будет уходить.



  • @Mulin Ну тут вопрос спорный. Некоторые вещи элегантно и эффективно одним-двумя кубиками сделать. Другие - можно и кубиками, но выйдет нереальное спагетти. Третьи - только javascript. По ситуации.



  • This post is deleted!