2011-09-06 58 views
2

我試圖以允許if語句條件被放置到一個文本字段,然後Javascript來採取文本字段並返回,如果這將是對或錯。使用字符串/文本輸入字段爲JavaScript一個條件if語句

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

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

以上例爲例,如果輸入爲「1 == 0」,則警報應該爲false。但JavaScript把它看作我問是字符串不是null,它不是那麼它提醒真實的。我需要以某種方式轉換爲邏輯布爾聲明。

回答

1

只要這個全部由用戶輸入驅動和地方留成,eval應該爲你工作。

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

查看JavaScript eval()函數。它需要一個字符串輸入,並會評估它作爲一個JavaScript表達式。

eval("1==0"); 
false 

eval("1==1"): 
true 
0

Demo

'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 

試圖解析它。