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