逗号分隔数字在javascript中的eval()函数中有效

时间:2015-01-29 07:18:50

标签: javascript jquery

我的目标是验证给定字符串是否为表达式格式?

var a =' 1 + 2&#39 ;; //有效字符串

eval(a)//得到3

var b =' 1 * 2&#39 ;; //有效字符串

eval(b)//得到2

var c =' 1,2&#39 ;; //无效的字符串

eval(c)//得到2

var d =' 1,2,3&#39 ;; //无效的字符串

eval(d)//得到3

在最后两种情况下,我传递了无效的字符串,但我得到了值。

我如何验证此类无效字符串

谢谢你

2 个答案:

答案 0 :(得分:1)

  

逗号运算符计算每个操作数(从左到右)   并返回最后一个操作数的值。

更多详情 - here

这就是最后两个字符串返回2和3的原因。您传递的字符串有效。

答案 1 :(得分:1)

逗号运算符的工作方式如下:

eval('exp1, exp2');

首先执行exp1,然后执行exp2 ...这样您就可以获得exp2的值作为输出。

  

注意:您应该在代码中明智地使用eval ...它可能会伤害您:)