Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript if语句中使用字符串/文本输入字段作为条件_Javascript - Fatal编程技术网

在JavaScript if语句中使用字符串/文本输入字段作为条件

在JavaScript if语句中使用字符串/文本输入字段作为条件,javascript,Javascript,我试图允许将if语句条件放入文本字段,然后让Javascript获取该文本字段并返回它是真还是假 logicStr = document.getElementById('logicString').value; if(logicStr){ alert("true"); }else{ alert("false"); } 在上面的示例中,如果输入为“1==0”,则警报应为false。但是Javascript在我询问字符串是否不为null时看到了它,因此它警告为true。我需要以某种方式转换为逻

我试图允许将if语句条件放入文本字段,然后让Javascript获取该文本字段并返回它是真还是假

logicStr = document.getElementById('logicString').value;

if(logicStr){
alert("true");
}else{
alert("false"); 
}

在上面的示例中,如果输入为“1==0”,则警报应为false。但是Javascript在我询问字符串是否不为null时看到了它,因此它警告为true。我需要以某种方式转换为逻辑布尔语句。

只要这些都是由用户输入驱动并在本地保留的,就应该适合您

if(eval(logicStr)){
   alert("true");
}else{
   alert("false"); 
}
查看JavaScript函数。它接受字符串输入,并将其作为JavaScript表达式进行计算

eval("1==0");
false

eval("1==1"):
true

尝试解析它

'false === false'.replace(/([a-zA-Z0-9]+) ?(==={0,1}) ?([a-zA-Z0-9]+)/, function (str,b,c,d) {
   if (/false/.test(b)) b = false;
   if (/false/.test(d)) d = false;
   if (/true/.test(b)) b = true;
   if (/true/.test(d)) d = true;

   if (c == '===') return +b === +d;
   else return d == b;
}); // true

'1 == 0'.replace(/([a-zA-Z0-9]+) ?(==={0,1}) ?([a-zA-Z0-9]+)/, function (str,b,c,d) {
   if (/false/.test(b)) b = false;
   if (/false/.test(d)) d = false;
   if (/true/.test(b)) b = true;
   if (/true/.test(d)) d = true;

   if (c == '===') return +b === +d;
   else return d == b;
}); // false