如何解串字符串化的JavaScript?

时间:2015-04-27 18:42:53

标签: javascript parsing eval stringify

如何去除字符串'已经字符串化的JavaScript代码? JSON.parse似乎不起作用。我们希望将JavaScript代码存储在数据库中,然后检索它然后评估它。这是数据库中的代码:

//# sourceURL=journal.js

function onBlur(e) {

    var drAmount = script.getGridRowFieldValue('debitamount', e.rowuid)
    var crAmount = script.getGridRowFieldValue('creditamount', e.rowuid);

    // Prevent both debit and credit from having values.      
    if (drAmount != undefined && crAmount != undefined) {

        if (e.fieldname == 'debitamount') {
            script.setGridRowFieldValue('creditamount', e, undefined)
        } else if (e.fieldname == 'creditamount') {
            script.setGridRowFieldValue('debitamount', e, undefined)
        }

    }
}

这里有什么回复:

  

" //#sourceURL = journal.js \ r \ n \ r \ nexport函数onBlur(e){\ r \ n \ r \ n var drAmount = script.getGridRowFieldValue(' debitamount&# 39;,e.rowuid)\ r \ n var crAmount = script.getGridRowFieldValue(' creditamount',e.rowuid); \ r \ n \ r \ n //防止借记和贷记都有值。 \ r \ n if(drAmount!= undefined&& crAmount!= undefined){\ r \ n \ r \ n if(e.fieldname ==' debitamount'){\ r \ n script .setGridRowFieldValue(' creditamount',e,undefined)\ r \ n} else if(e.fieldname ==' creditamount'){\ r \ n script.setGridRowFieldValue(&#39 ; debitamount',e,undefined)\ r \ n} \ r \ n \ r \ n} \ r \ n} \ r \ n \ r \ n \ r \ n \ r \ n \ n \ r \ n&# 34;

3 个答案:

答案 0 :(得分:2)

eval。它接受一个字符串作为参数,你可以将该字符串传递给它,它应该可以工作。

另外,请阅读并理解他人提及的警告以及我链接到的文档。

答案 1 :(得分:1)

您应该尝试从其数据中提取对象的行为。使用eval通常是一件坏事,特别是如果你不相信你正在解析的字符串。您应该将数据存储为json,并且使用数据的函数应该是静态的,并通过原型或类似的东西添加到您的对象中。

答案 2 :(得分:0)

你不应该JSON.stringify javascript代码,只有javascript数据对象。

请参阅此JSON.stringify function

将代码保存为数据库中的字符串。您可能希望模糊您的代码。 How can I obfuscate (protect) JavaScript?