Как правильно оценить строку Javascript, содержащую выражение JSON.parse со специальными символами? - PullRequest
0 голосов
/ 15 апреля 2019

Мне нужно оценить выражение JS, созданное следующим образом

function createExprs(obj){
   var decl = "var i = ";
   var value = JSON.stringify(obj);
   var exprs = decl + "JSON.parse('" + value + "')";
   return exprs;
}

var i = createExprs({1:2});//i = "var i = JSON.parse('{"1":4}')"
eval(i); // works fine 

Однако происходит сбой, когда объект содержит какие-либо специальные символы

var i = createExprs("today\\.article") \\i="var i = JSON.parse('"today\\.article"')"
eval(i) //  Unexpected token . in JSON 

1 Ответ

0 голосов
/ 15 апреля 2019

Вам нужно сбежать ":

"var i = JSON.parse('\"today.article\"')"
...