$ eval验证插入的变量是否存在/不正确

时间:2016-01-21 18:09:18

标签: html angularjs eval

在我的应用程序中,我需要允许用户添加自己的数学公式,可以使用运算符和调用变量。无论如何,验证用户是否写错了变量或未知变量来显示错误? 我有例子here,你在控制器的顶部有一些范围变量。一个细微差别,如果我在示例中插入一个无效变量,它显示null,但在我的代码中显示为空白。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

老实说,如果你不是懒得把这些东西扔进eval,你可以自己轻松解析它,我会重新进行侦察。

如何删除所有空格,并对每个字符进行交互? 我的意思是只要没有像aa或ab这样的变量,你就可以检查一下。

for (var i = 0; i < answer.length ; i++) {
    if (!isvalidParamOrOperator(answer[i])) {
        //can show error at position i+1;
        return false;
    } 
}

isValidParamOrOperator类似于

function(str) {
    return "1234567890ab".indexOf(str);
}

当然,在较长的参数下它会变得有点复杂,但是你可以创建一些可以分解所有运算符的东西,比如+ - space&amp;数字。然后你会得到一份你可以检查的所有参数列表。应该在数组上检查而不是我当前的建议,但是在实现这样的事情之后这应该不会很难。