Подскажите как заменить в строке значения между маркерами?
Привет, есть веб страница с ява скриптом (рисует по данным график)
у меня апликация работает на яве тоже, и умееть отображать в контейнере эту страницу, изначально в странице указан начальный масив даных что бы было что рисовать. В базе даных страница храница построчно, тоесть массивом - елемент = строка. Я из апликации хочю заменить блок данных на свой. Как это проще всего сделать? Перед выводом массив соединяю join. брутально решение представляю так: вставить маркер перед заменяемыми даными: //![ и вконце //!] Прогнать все елементы массива через проверку, и если не найден маркер - складывать в выходящию переменую, если найден первый маркер - вставить свой блок данных в переменную, не добавлять данные пока не будет обнаружен второй маркер. Но как то громоздко получаеться :( может кто подскажет решение попроще? Что то типа с репласе - но не сображу как им задать диапозон на вырезку |
можно узреть код, что бы было хоть чуть-чуть понятнее...))
|
В самом коде смысла нету но приведу что бы было наглядней что я хочю сделать, есть такое:
//![ //colors for drawings var colorspal = ['red', 'blue', 'green', 'purple', 'orange', 'aqua', 'gold', 'gray']; //status captions var scaptions = ["Very bad", "Amiss", "Poorly", "Illy", "Commonly", "So so", "Good", "Fine", "Perfect", "Outstanding"]; //status colors var scolors = ["#CD0A31", "#F43445", "#F44C34", "#F47634", "#F49C34", "#F4C934", "#F4F434", "#D5F434", "#AEF434", "#5BBE3C"]; //!] мне нужна подсказка как сделать замену всего того что между //![ и //!] бо количество строк между ними может быть разное |
если вы хотите изменить именно код js, то я думаю без eval'ов не обойдется...
а найти этот блок можно с помощью регулярки |
и что то мне подсказывает.. что вы хотите, немного извращение.. ИМХО))
|
заменой по регулярке, я же как понимаю все эти данные в строке
/\/\/!\[[\d\s\D]*?\/\/!\]/ ну или вместо [\d\s\D] - . но с модификатором s |
да по регулярке - тока я не знаю как ее собрать :)
|
ну вам же edison показал готовую регулярку..
var str = '\ //![\n\ //colors for drawings \n\ var colorspal = [\'red\', \'blue\', \'green\'];\n\ //status captions\n\ var scaptions = ["Very bad", "Amiss", "Poorly", "Illy", "Commonly", "So so", "Good", "Fine", "Perfect", "Outstanding"];\n\ //status colors\n\ var scolors = ["#CD0A31", "#F43445", "#F44C34", "#F47634", "#F49C34", "#F4C934", "#F4F434", "#D5F434", "#AEF434", "#5BBE3C"];\n\ //!]\ '; console.log(str); var str = str.replace(/\/\/!\[[\d\s\D]*?\/\/!\]/, 'new text'); console.log(str); |
да, спасибо, подошло, я ответил просто невнятно, мол до того как он показал чувствовал что как то можно, но незнал как конкретно, для меня регулярка темный лес, но вот уже с вашей помощью начинаю разбираться
|
Часовой пояс GMT +3, время: 23:07. |