将可变字符串值转换为JavaScript中的表达式

拉胡尔·沙玛(Rahul Sharma)

我试图将字符串值转换为表达式,以便可以在if条件中使用它,例如:

var StringVal = '20 > 18 && "yes" == "yes"';

if(StringVal){

    ....
}

是否可以这样做,请建议我。

谢谢

Xotic750

从用户来源获取输入并进行评估通常并不安全,但是您可以使用Function评估,或者eval

var StringVal = '20 > 18 && "yes" == "yes"';
if (new Function('return (' + StringVal + ')')()) {
  console.log('ok');
}

eval()和new Function()是同一件事吗?

更新:如果您可以在问题中提供进一步的信息,说明为什么您认为有必要这样做,并附上您的实际代码示例,则可以提出更安全的解决方案。

此外:在中JSON2eval用于JSON.parse

https://github.com/douglascrockford/JSON-js/blob/master/json2.js#L491

但是您还会注意到,在eval调用之前执行了一些清理操作

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

正则表达式将可变字符串拆分为groupdict

Jasper报告中的表达式值:“无法从字符串转换为布尔值”错误

在java中将字符串转换为表达式

将 docplex 表达式转换为字符串

将Elm表达式转换为字符串

将NCalc表达式转换为字符串

将字符串转换为 SymPy 表达式?

在javascript中将正则表达式字符串转换为正则表达式对象

评估字符串表达式并转换为布尔值?

将字符串表达式转换为数学表达式?

将表达式字符串转换为引用表达式

将字符串表达式转换为实际的工作实例表达式

如何将字符串转换为python(Generator表达式)中的嵌套字典?

无法使用SSIS中的表达式将字符串转换为DateTime

如何将数组中的字符串转换为表达式?

Lambda表达式中的错误返回类型字符串无法转换为Object

将序列表达式转换为R绘图标签中的字符串

使用正则表达式将引号中的字符串转换为单个短语

转换为BsonDocument时会删除字符串中的正则表达式

将数学表达式转换为 Ruby 中的字符串

正则表达式可在字符串中查找具有静态位置但字符数量可变的值

将RGB字符串转换为RGBa字符串的正则表达式

用正则表达式获取JavaScript中字符之间的内容,并用可变字符串替换它们

使用正则表达式转换javascript中的字符串

将for循环转换为将concat字符串转换为lambda表达式

如何使用正则表达式在 Javascript 中传递字符串值数组

正则表达式:从JavaScript中的字符串获取高度值

用 html 中的属性值解析 JSON 字符串的 Javascript 正则表达式

使用正则表达式将插值字符串转换为string.Format