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

comma seperated number is valid in eval() function in javascript

本文关键字:函数 有效 中的 分隔 JavaScript eval      更新时间:2023-09-26

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

变量 a = '1+2'; 有效字符串

评估(a)//得到 3

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

评估(b)//得到 2

var c = '1 , 2';//无效字符串

eval(c)//得到 2

var d = '1, 2, 3';//无效字符串

eval(d)//得到 3

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

如何验证这种类型的无效字符串

谢谢

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

eval('exp1, exp2');

先执行exp1,然后执行exp2...因此,您将获得 exp2 的值作为输出。

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

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

更多细节 - 这里。

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