簡體   English   中英

javascript:檢查表達式是否可評估?

[英]javascript: check whether expression is evaluatable or not?

我有隨機表達,由用戶給出( 例如:2 + 3 * 5,21 * +(4)7,* - 54 + 3 )。 這些表達式可以包含任意數量的操作數或運算符來形成表達式。我需要評估這些表達式以獲得Answer.I試圖使用eval()函數進行值,但問題是當一個錯誤的表達式傳遞給eval()函數時拋出一個錯誤,程序停止。我試過了

if(eval(exp))
{    
    //Action Expression is evaluatable
}
else
{
    //expression is not Evaluatable
}

但沒有奏效並產生錯誤信息

"SyntaxError: unterminated regular expression literal."  

由於表達式本質的多樣性,我很難在評估之前構造檢查語句。
你能建議我怎么能簡單地檢查傳遞給eval()函數的表達式是否正確?

抓住錯誤:

try {
        eval(exp); 
    } catch (e) {
        if (e instanceof SyntaxError) {
            alert(e.message);
        }
    }

您可以嘗試將腳本的內容動態放在“腳本”標記中,然后檢查錯誤函數的返回。 或者在腳本末尾定義一個變量,並在執行后檢查它是否存在。

或者mayber你可以在這里找到答案: https ://stackoverflow.com/a/9522483/2007701 !!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM