作者:mobiledu2502886131 | 来源:互联网 | 2023-09-07 09:52
我试图在Javascript中为结构“ if”创建动态验证,例如:
var var1=1;
var comparator="!==";
var var2=1;
if(var1+comparator+var2){
alert("Yes, its false");
}else{
alert("Yes, its true");
}
这三个变量可以根据用户需要进行更改.我发现该句子始终被验证为“ true”,因为结构“ if”验证该字符串存在.
我想要的是,用户更改了这三个变量中的任何一个,并且该函数返回了结果.显然,比较运算符由其他函数控制,这些函数将运算符的选项限制为:“ ===”,“!==” …
谢谢并恭祝安康
解决方法:
最简单的方法:
eval(var1+comparator+var2)
但是,这是一个好主意吗,取决于您在做什么. var1,var1和比较器从哪里来?如果用户自己输入它们,那不是问题.即使它们是从服务器加载的,也不是什么大问题.
但是,如果用户可以将其提交到服务器,然后将其显示在另一个用户的浏览器中,则这是一个非常糟糕的主意,因为他们可以提交任意Javascript并使其在其他用户的浏览器中执行.这称为跨站点脚本(XSS)注入.