我需要创建一个基于传入json对象的字符串值的动态验证器。因此,假设您有以下字符串:
var required: "Homes > 0"在本例中,"Homes“是我的函数中的一个accessible对象。我想从逻辑上把上面的内容变成:
if (this.Homes > 0) { return true; }分成几个部分来考虑:
if (this[left] > parsed[right]) { return true; }我想你明白我的意思了。我不确定是否有一种方法可以轻松地提取运算符,而不是只对每种类型进行切换?如下所示:
required: "Homes = 0" // this[Left] === 0我将以一种非常可怕的丑陋的字符串拆分方式来实现,在运算符上有一个开关。我只是想知道有没有一种超级巧妙的方法可以让这种东西变得健壮。
发布于 2017-08-29 05:43:36
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval
eval('Homes > 0');但请考虑使用此模式:
function Class(){
this.validate = function(){
return true;
}
}
var x = new Class();
//overload the validate operator
x.validate = function(){
return false;
}您希望避免eval,因为它可能不安全,因为它允许执行任意代码。
发布于 2017-08-29 05:44:45
尝试使用
eval("if (this.Homes > 0) { return true; }");https://stackoverflow.com/questions/45927725
复制相似问题