LINUX.ORG.RU

SyntaxError: Unexpected token ' in JSON at position 32. Почему?

 , ,


0

1

Есть строка такого вида:


[10035,1,[[1,[[1,11871,[2065165,'\u0412\u0435\u0441\u0442\u0435\u0440\u043D \u0421\u0438\u0434\u043D\u0435\u0439 \u0423\u043E\u043D\u0434\u0435\u0440\u0435\u0440\u0441','\u0421\u0438\u0434\u043D\u0435\u0439','1.009-E005217021802',6,'02/18/2017 16:50','',1,0,1,2,{126:[1,1]}],[3,1,41,45,0,0,{126:[1,1,41,45,0,0,,,{1:45,2:45,3:15,4:15},0],310:[0,1,41,45,0,0,,,{1:45,2:45,3:15,4:15},0],309:[0,1,41,45,0,0,,,{1:45,2:45,3:15,4:15},0],308:[0,1,41,45,0,0,,,{1:45,2:45,3:15,4:15},0],307:[0,1,41,45,0,0,,,{1:45,2:45,3:15,4:15},0],306:[0,1,41,45,0,0,,,{1:45,2:45,3:15,4:15},0]},,{1:45,2:45,3:15,4:15},0],[[17,17,[]],[33571008,[1,0,1,1,12000,-0.50,2059220],[1.95,1.97]],[33571009,[1,0,1,1,6000,-0.25,2059220],[2.33,1.67]],[33571014,[5,0,5,1,3000,0.00,2059220],[1.96,2.98,4.30]],[33571022,[1,0,1,1,4000,-0.75,2059220],[1.68,2.31]]],2],[1,19097,[2070863,'Heidelberg United','Avondale FC','1.030-E007717021802',10,'02/18/2017 16:30','',0,1,1,,{}],[1,0,0,45,0,0,{},,{1:45,2:45,3:15,4:15},0],[[3,3,[]],[33665916,[1,0,1,1,3000,0.50,2071489],[2.07,1.83]],[33665920,[5,0,5,1,500,0.00,2071489],[4.70,2.91,1.83]]],1],[1,7256,[2073815,'Souths United','Rochedale Rovers','1.032-E008717021805',10,'02/18/2017 17:00','',0,0,1,0,{}],[1,1,31,45,0,0,{},,{1:45,2:45,3:15,4:15},0],[[0,0,[[1,0,1],[5,0,5]]]],3],[1,7256,[2073813,'Ipswich Knights','Albany Creek','1.032-E008717021803',10,'02/18/2017 17:00','',1,0,1,0,{}],[1,1,36,45,0,0,{},,{1:45,2:45,3:15,4:15},0],[[6,6,[]],[33717500,[1,0,1,1,2000,-0.25,2078167],[1.90,1.94]],[33717504,[5,0,5,1,500,0.00,2078167],[1.66,3.60,4.20]]],2],[1,7256,[2073814,'Grange Thistle','Mitchelton FC','1.032-E008717021804',10,'02/18/2017 17:00','',1,0,1,0,{}],[1,1,34,45,1,0,{},,{1:45,2:45,3:15,4:15},0],[[6,6,[]],[33717508,[1,0,1,1,2000,-1.00,2078168],[2.04,1.80]],[33717512,[5,0,5,1,500,0.00,2078168],[2.62,2.99,2.48]]],2],[1,7256,[2073812,'Logan Lightning (n)','Eastern Suburbs FC','1.032-E008717021802',10,'02/18/2017 16:00','',1,1,1,0,{}],[1,2,35,45,0,0,{},,{1:45,2:45,3:15,4:15},0],[[4,4,[]],[33717492,[1,0,1,1,1000,-0.25,2078166],[1.45,2.63]],[33717496,[5,0,5,1,500,0.00,2078166],[6.00,1.51,3.45]],[33717498,[1,0,1,1,2000,0.00,2078166],[2.66,1.44]]],3],[1,24374,[2071853,'Adelaide United U21','Adelaide Olympic','1.033-E009217021804',10,'02/18/2017 16:30','',0,2,1,0,{}],[1,2,5,45,0,0,{},,{1:45,2:45,3:15,4:15},0],[[3,3,[]],[33686507,[1,0,1,1,2000,-0.25,2073198],[1.92,1.92]],[33686511,[5,0,5,1,500,0.00,2073198],[23.00,6.00,1.099]]],2],[1,44064,[2066059,'Bali United Pusam','PS Barito Putera','1.089-E072417021801',6,'02/18/2017 16:00','',1,1,0,0,{}],[1,2,33,45,0,0,{},,{1:45,2:45,3:15,4:15},0],[[3,3,[]],[33593355,[1,0,1,1,2000,0.25,2061253],[2.04,1.80]],[33593358,[5,0,5,1,500,0.00,2061253],[2.57,1.93,4.70]]],1],[1,228,[2065819,'GrIFK Kauniainen (n)','HJK Helsinki','1.026-E022017021801',10,'02/18/2017 17:00','',0,1,1,0,{}],[1,1,37,45,0,0,{},,{1:45,2:45,3:15,4:15},0],[[6,6,[]],[33587489,[1,0,1,1,2000,-1.50,2060809],[2.13,1.78]],[33587493,[5,0,5,1,500,0.00,2060809],[65.00,8.50,1.035]]],2],[1,31224,[2072986,'Kitchee','Tai Po','1.082-E068317021802',10,'02/18/2017 17:30','',0,0,1,0,{}],[1,1,9,45,0,0,{},,{1:45,2:45,3:15,4:15},0],[[4,4,[]],[33704744,[1,0,1,1,500,0.75,2076378],[1.71,2.05]]],1]],[],[]]]]




При попытке JSON.parse получаю следующую ошибку:
undefined:1
[10035,1,[[1,[[1,11871,[2065165,'\u0412\u0435\u0441\u0442\u0435\u0440\u043D \u0421\u0438\u0434\u043D\u0435\u0439 \u0423\u043E\u043D\u0434\u0435\u0440\u0435\u0440\u0441','\u0421\u0438\u0434\u043D\u0435\u0439','1.009-E005217021802',6,'02/18/2017 16:50','',1,0,1,2,{126:[1,1]}],[3,1,41,45,0,0,{126:[1,1,41,45,0,0,,,{1:45,2:45,3:15,4:15},0],310:[0,1,41,45,0,0,,,{1:45,2:45,3:15,4:15},0],309:[0,1,41,45,0,0,,,{1:45,2:45,3:15,4:15},0],308:[0,1,41,45,0,0,,,{1:45,2:45,3:15,4:15},0],307:[0,1,41,45,0,0,,,{1:45,2:45,3:15,4:15},0],306:[0,1,41,45,0,0,,,{1:45,2:45,3:15,4:15},0]},,{1:45,2:45,3:15,4:15},0],[[17,17,[]],[33571008,[1,0,1,1,12000,-0.50,2059220],[1.95,1.97]],[33571009,[1,0,1,1,6000,-0.25,2059220],[2.33,1.67]],[33571014,[5,0,5,1,3000,0.00,2059220],[1.96,2.98,4.30]],[33571022,[1,0,1,1,4000,-0.75,2059220],[1.68,2.31]]],2],[1,19097,[2070863,'Heidelberg United','Avondale FC','1.030-E007717021802',10,'02/18/2017 16:30','',0,1,1,,{}],[1,0,0,45,0,0,{},,{1:45,2:45,3:15,4:15},0],[[3,3,[]],[33665916,[1,0,1,1,3000,

SyntaxError: Unexpected token ' in JSON at position 32
    at JSON.parse (<anonymous>)
    at /home/slava/parsers/sbobet.js:28:13
    at done (/home/slava/parsers/node_modules/needle/lib/needle.js:398:14)
    at PassThrough.<anonymous> (/home/slava/parsers/node_modules/needle/lib/needle.js:637:11)
    at emitNone (events.js:91:20)
    at PassThrough.emit (events.js:186:7)
    at endReadableNT (_stream_readable.js:974:12)
    at _combinedTickCallback (internal/process/next_tick.js:74:11)
    at process._tickCallback (internal/process/next_tick.js:98:9)

Второй день не могу врубиться. Что не так?

На pastebin: http://pastebin.com/MLew8QeR

★★★★★

Последнее исправление: Qwentor (всего исправлений: 3)
Ответ на: комментарий от ChALkeR

Да, но это же

[2065165,'\u0412\u0435\u0441\u0442\u0435\u0440\u043D \u0421\u0438\u0434\u043D\u0435\u0439 \u0423\u043E\u043D\u0434\u0435\u0440\u0435\u0440\u0441','\u0421\u0438\u0434\u043D\u0435\u0439','1.009-E005217021802',6

Первая кавычка вокруг utf-8 кодированного текста. Разве это неправильно?
Не понимаю

Qwentor ★★★★★
() автор топика
Ответ на: комментарий от Miguel

Кроме того, два раза подряд ",," — это тоже невалидно.

Miguel ★★★★★
()
Ответ на: комментарий от Qwentor

Да, в жсоне это неправильно. Смотри спеку, там все строки должны быть завёрнуты в двойные кавычки.

И это, кстати, не единственная твоя проблема. То, что ты пытаешься спарсить — не жсон.

ChALkeR ★★★★★
()

Правильный жсон должен выглядеть так:

[10035,1,[[1,[[1,11871,[2065165,"Вестерн Сидней Уондерерс","Сидней","1.009-E005217021802",6,"02/18/2017 16:50","",1,0,1,2,{"126":[1,1]}],[3,1,41,45,0,0,{"126":[1,1,41,45,0,0,null,null,{"1":45,"2":45,"3":15,"4":15},0],"306":[0,1,41,45,0,0,null,null,{"1":45,"2":45,"3":15,"4":15},0],"307":[0,1,41,45,0,0,null,null,{"1":45,"2":45,"3":15,"4":15},0],"308":[0,1,41,45,0,0,null,null,{"1":45,"2":45,"3":15,"4":15},0],"309":[0,1,41,45,0,0,null,null,{"1":45,"2":45,"3":15,"4":15},0],"310":[0,1,41,45,0,0,null,null,{"1":45,"2":45,"3":15,"4":15},0]},null,{"1":45,"2":45,"3":15,"4":15},0],[[17,17,[]],[33571008,[1,0,1,1,12000,-0.5,2059220],[1.95,1.97]],[33571009,[1,0,1,1,6000,-0.25,2059220],[2.33,1.67]],[33571014,[5,0,5,1,3000,0,2059220],[1.96,2.98,4.3]],[33571022,[1,0,1,1,4000,-0.75,2059220],[1.68,2.31]]],2],[1,19097,[2070863,"Heidelberg United","Avondale FC","1.030-E007717021802",10,"02/18/2017 16:30","",0,1,1,null,{}],[1,0,0,45,0,0,{},null,{"1":45,"2":45,"3":15,"4":15},0],[[3,3,[]],[33665916,[1,0,1,1,3000,0.5,2071489],[2.07,1.83]],[33665920,[5,0,5,1,500,0,2071489],[4.7,2.91,1.83]]],1],[1,7256,[2073815,"Souths United","Rochedale Rovers","1.032-E008717021805",10,"02/18/2017 17:00","",0,0,1,0,{}],[1,1,31,45,0,0,{},null,{"1":45,"2":45,"3":15,"4":15},0],[[0,0,[[1,0,1],[5,0,5]]]],3],[1,7256,[2073813,"Ipswich Knights","Albany Creek","1.032-E008717021803",10,"02/18/2017 17:00","",1,0,1,0,{}],[1,1,36,45,0,0,{},null,{"1":45,"2":45,"3":15,"4":15},0],[[6,6,[]],[33717500,[1,0,1,1,2000,-0.25,2078167],[1.9,1.94]],[33717504,[5,0,5,1,500,0,2078167],[1.66,3.6,4.2]]],2],[1,7256,[2073814,"Grange Thistle","Mitchelton FC","1.032-E008717021804",10,"02/18/2017 17:00","",1,0,1,0,{}],[1,1,34,45,1,0,{},null,{"1":45,"2":45,"3":15,"4":15},0],[[6,6,[]],[33717508,[1,0,1,1,2000,-1,2078168],[2.04,1.8]],[33717512,[5,0,5,1,500,0,2078168],[2.62,2.99,2.48]]],2],[1,7256,[2073812,"Logan Lightning (n)","Eastern Suburbs FC","1.032-E008717021802",10,"02/18/2017 16:00","",1,1,1,0,{}],[1,2,35,45,0,0,{},null,{"1":45,"2":45,"3":15,"4":15},0],[[4,4,[]],[33717492,[1,0,1,1,1000,-0.25,2078166],[1.45,2.63]],[33717496,[5,0,5,1,500,0,2078166],[6,1.51,3.45]],[33717498,[1,0,1,1,2000,0,2078166],[2.66,1.44]]],3],[1,24374,[2071853,"Adelaide United U21","Adelaide Olympic","1.033-E009217021804",10,"02/18/2017 16:30","",0,2,1,0,{}],[1,2,5,45,0,0,{},null,{"1":45,"2":45,"3":15,"4":15},0],[[3,3,[]],[33686507,[1,0,1,1,2000,-0.25,2073198],[1.92,1.92]],[33686511,[5,0,5,1,500,0,2073198],[23,6,1.099]]],2],[1,44064,[2066059,"Bali United Pusam","PS Barito Putera","1.089-E072417021801",6,"02/18/2017 16:00","",1,1,0,0,{}],[1,2,33,45,0,0,{},null,{"1":45,"2":45,"3":15,"4":15},0],[[3,3,[]],[33593355,[1,0,1,1,2000,0.25,2061253],[2.04,1.8]],[33593358,[5,0,5,1,500,0,2061253],[2.57,1.93,4.7]]],1],[1,228,[2065819,"GrIFK Kauniainen (n)","HJK Helsinki","1.026-E022017021801",10,"02/18/2017 17:00","",0,1,1,0,{}],[1,1,37,45,0,0,{},null,{"1":45,"2":45,"3":15,"4":15},0],[[6,6,[]],[33587489,[1,0,1,1,2000,-1.5,2060809],[2.13,1.78]],[33587493,[5,0,5,1,500,0,2060809],[65,8.5,1.035]]],2],[1,31224,[2072986,"Kitchee","Tai Po","1.082-E068317021802",10,"02/18/2017 17:30","",0,0,1,0,{}],[1,1,9,45,0,0,{},null,{"1":45,"2":45,"3":15,"4":15},0],[[4,4,[]],[33704744,[1,0,1,1,500,0.75,2076378],[1.71,2.05]]],1]],[],[]]]]

ChALkeR ★★★★★
()
Ответ на: комментарий от Qwentor

JSON.stringify от этого дела выдаёт

[10035,1,[[1,[[1,11871,[2065165,"Вестерн Сидней Уондерерс","Сидней","1.009-E005217021802",6,"02/18/2017 16:50","",1,0,1,2,{"126":[1,1]}],[3,1,41,45,0,0,{"126":[1,1,41,45,0,0,null,null,{"1":45,"2":45,"3":15,"4":15},0],"306":[0,1,41,45,0,0,null,null,{"1":45,"2":45,"3":15,"4":15},0],"307":[0,1,41,45,0,0,null,null,{"1":45,"2":45,"3":15,"4":15},0],"308":[0,1,41,45,0,0,null,null,{"1":45,"2":45,"3":15,"4":15},0],"309":[0,1,41,45,0,0,null,null,{"1":45,"2":45,"3":15,"4":15},0],"310":[0,1,41,45,0,0,null,null,{"1":45,"2":45,"3":15,"4":15},0]},null,{"1":45,"2":45,"3":15,"4":15},0],[[17,17,[]],[33571008,[1,0,1,1,12000,-0.5,2059220],[1.95,1.97]],[33571009,[1,0,1,1,6000,-0.25,2059220],[2.33,1.67]],[33571014,[5,0,5,1,3000,0,2059220],[1.96,2.98,4.3]],[33571022,[1,0,1,1,4000,-0.75,2059220],[1.68,2.31]]],2],[1,19097,[2070863,"Heidelberg United","Avondale FC","1.030-E007717021802",10,"02/18/2017 16:30","",0,1,1,null,{}],[1,0,0,45,0,0,{},null,{"1":45,"2":45,"3":15,"4":15},0],[[3,3,[]],[33665916,[1,0,1,1,3000,0.5,2071489],[2.07,1.83]],[33665920,[5,0,5,1,500,0,2071489],[4.7,2.91,1.83]]],1],[1,7256,[2073815,"Souths United","Rochedale Rovers","1.032-E008717021805",10,"02/18/2017 17:00","",0,0,1,0,{}],[1,1,31,45,0,0,{},null,{"1":45,"2":45,"3":15,"4":15},0],[[0,0,[[1,0,1],[5,0,5]]]],3],[1,7256,[2073813,"Ipswich Knights","Albany Creek","1.032-E008717021803",10,"02/18/2017 17:00","",1,0,1,0,{}],[1,1,36,45,0,0,{},null,{"1":45,"2":45,"3":15,"4":15},0],[[6,6,[]],[33717500,[1,0,1,1,2000,-0.25,2078167],[1.9,1.94]],[33717504,[5,0,5,1,500,0,2078167],[1.66,3.6,4.2]]],2],[1,7256,[2073814,"Grange Thistle","Mitchelton FC","1.032-E008717021804",10,"02/18/2017 17:00","",1,0,1,0,{}],[1,1,34,45,1,0,{},null,{"1":45,"2":45,"3":15,"4":15},0],[[6,6,[]],[33717508,[1,0,1,1,2000,-1,2078168],[2.04,1.8]],[33717512,[5,0,5,1,500,0,2078168],[2.62,2.99,2.48]]],2],[1,7256,[2073812,"Logan Lightning (n)","Eastern Suburbs FC","1.032-E008717021802",10,"02/18/2017 16:00","",1,1,1,0,{}],[1,2,35,45,0,0,{},null,{"1":45,"2":45,"3":15,"4":15},0],[[4,4,[]],[33717492,[1,0,1,1,1000,-0.25,2078166],[1.45,2.63]],[33717496,[5,0,5,1,500,0,2078166],[6,1.51,3.45]],[33717498,[1,0,1,1,2000,0,2078166],[2.66,1.44]]],3],[1,24374,[2071853,"Adelaide United U21","Adelaide Olympic","1.033-E009217021804",10,"02/18/2017 16:30","",0,2,1,0,{}],[1,2,5,45,0,0,{},null,{"1":45,"2":45,"3":15,"4":15},0],[[3,3,[]],[33686507,[1,0,1,1,2000,-0.25,2073198],[1.92,1.92]],[33686511,[5,0,5,1,500,0,2073198],[23,6,1.099]]],2],[1,44064,[2066059,"Bali United Pusam","PS Barito Putera","1.089-E072417021801",6,"02/18/2017 16:00","",1,1,0,0,{}],[1,2,33,45,0,0,{},null,{"1":45,"2":45,"3":15,"4":15},0],[[3,3,[]],[33593355,[1,0,1,1,2000,0.25,2061253],[2.04,1.8]],[33593358,[5,0,5,1,500,0,2061253],[2.57,1.93,4.7]]],1],[1,228,[2065819,"GrIFK Kauniainen (n)","HJK Helsinki","1.026-E022017021801",10,"02/18/2017 17:00","",0,1,1,0,{}],[1,1,37,45,0,0,{},null,{"1":45,"2":45,"3":15,"4":15},0],[[6,6,[]],[33587489,[1,0,1,1,2000,-1.5,2060809],[2.13,1.78]],[33587493,[5,0,5,1,500,0,2060809],[65,8.5,1.035]]],2],[1,31224,[2072986,"Kitchee","Tai Po","1.082-E068317021802",10,"02/18/2017 17:30","",0,0,1,0,{}],[1,1,9,45,0,0,{},null,{"1":45,"2":45,"3":15,"4":15},0],[[4,4,[]],[33704744,[1,0,1,1,500,0.75,2076378],[1.71,2.05]]],1]],[],[]]]]
Miguel ★★★★★
()
Последнее исправление: Miguel (всего исправлений: 1)
Ответ на: комментарий от Miguel

Невалидно!

У тебя жсон завёрнут в двойные кавычки, при этом двойные кавычки внутри жсона не экранированы.

ChALkeR ★★★★★
()
Ответ на: комментарий от Miguel

JSON.stringify от этого дела выдаёт

Эм.. У тебя этим методом все приводится к нормальному виду?? У меня не выходит. Не подскажешь магию? Я всегда думал, что он только валидный объект преобразует в валидный json

Qwentor ★★★★★
() автор топика
Ответ на: комментарий от Qwentor

А он валидный. Только не в JSON, а в Javascript. Пробовал в консоли огнелиса: JSON.stringify([10035,и-так-далее-тут-копипаста]).

Miguel ★★★★★
()
Ответ на: комментарий от Miguel

Блин, вот для замены кавычек и подряд запятых я сделал так:

str = str.replace(/\'/g, "\"");
str = str.replace(/,,/g, ",\"\",");
А как быть с закавычиванием имен полей? Пока не лезет в голову

Qwentor ★★★★★
() автор топика
Последнее исправление: Qwentor (всего исправлений: 2)
Ответ на: комментарий от Miguel

валидного json.

json.stringify только в браузере работает, т.к. считает вводимое уже объектом, а нода считает строкой и просто берет все в кавычки

Qwentor ★★★★★
() автор топика
Последнее исправление: Qwentor (всего исправлений: 2)
Ответ на: комментарий от Qwentor

json.stringify только в браузере работает, т.к. считает вводимое уже объектом, а нода считает строкой и просто берет все в кавычки

За ноду я не знаю, а вообще либо eval (плохая идея), либо честный самопальный парсер.

Miguel ★★★★★
()
Ответ на: комментарий от Miguel

Ну, это не совсем парсер. Просто пытаюсь заменить все невалидные выражения на валидные для JSON. А собственно парсер уже будет использовать уже этот объект. Собственно этот «json» из веб-страницы парсером выковырян

Qwentor ★★★★★
() автор топика
Последнее исправление: Qwentor (всего исправлений: 1)
Ответ на: комментарий от Miguel
str = str.replace(/(\s*?{\s*?|\s*?,\s*?)(['"])?([a-zA-Z0-9]+)(['"])?:/g, '$1"$3":');
str = str.replace(/\'/g, "\"");
str = str.replace(/,,/g, ",\"\",");
str = str.replace(/,,/g, ",\"\",");
Qwentor ★★★★★
() автор топика
Ответ на: комментарий от Qwentor

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

anonymous
()
Ответ на: комментарий от Qwentor

Никак. Если нечем заняться - распарси через acorn/esprima и потом из AST собери. Либо eval сделай от `var a = my_string;` если не страшно.

Запомни простое правило - никогда не пытайся запарсить дерево плоским набором линейных регулярок.

Vit ★★★★★
()
Ответ на: комментарий от Vit

Уже же сделал) Смотри моё предыдущее сообщение. Мне не дерево запарсить, а привести все к виду валидного json. Просто обернуть имена полей кавычками, две запятые подряд исправить на запятая, пустые кавычки, запятая и собственно одинарные кавычки сменить на двойные. Все. С этим уже работать можно

Qwentor ★★★★★
() автор топика
Ответ на: комментарий от Qwentor

Навскидку, если будет строка с одинарными кавычками внутри, будут проблемы. Возможно ты сделал для частного случая, но в общем случае так нормально не сделать. Это я тебе как пейсатель всяких парсеров и говнопарсеров говорю. Можно и регулярками наговнякать по обстоятельствам, просто надо четко понимать чем рискуешь.

Vit ★★★★★
()
Ответ на: комментарий от Vit

для частного случая

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

Qwentor ★★★★★
() автор топика
Ответ на: комментарий от Vit

Навскидку, если будет строка с одинарными кавычками внутри, будут проблемы

Или с двоеточием Возникло уже на другом скрипте.

Слава богу в нем вообще именованных параметров нет, просто отключил эту замену.

В общем да, не универсально. Пока делаю так, чтоб просто работало.

Если подскажешь как правильно, буду благодарен

Qwentor ★★★★★
() автор топика
Последнее исправление: Qwentor (всего исправлений: 2)
Ответ на: комментарий от Qwentor

Я ж написал, и выше говорили - зафигачь eval. Если внутри гарантированно объект, без исполняемого кода - получится дешево и сердито.

var a;
eval("a = " + "твоя_яваскриптовая хрень");


Ну или можно покрасивее обернуть, или через new Function, но смысл тот же.

Надо учитывать следующее: источник должен быть достаточно доверенным, чтобы не выдал тебе исполняемый код.

Это для браузера. На сервере я б чего-нибудь более безопасное сочинил. Через полноценный парсинг яваскрипта или через vm для изоляции.

Vit ★★★★★
()
Ответ на: комментарий от Vit

евал и так возвращает результат, можно без а = евалить, а = евал(сразу, во-вторых, можно обойтись без евала если забустрапить переменную, вставить ее как код на страницу и делов, в-третьих таких вариантов еще ого-го

anonymous
()
Ответ на: комментарий от Vit

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

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.