我正在研究基於html的計算器,並且我想渲染一個表達式,然後對其進行評估,並且所有這些都必須在Javascript中完成。我更喜歡用LaTeX編寫表達式,並且可以交互地編輯呈現的表達式,但其他語言可以工作。使用Javascript評估膠乳數學
我之前嘗試的是使用MathQuill交互式呈現表達式,然後使用MathJS對其進行評估。然而,這在某種程度上是有效的,因爲兩個包的設計目標不同(MathQuill渲染LaTeX,而MathJS有自定義的數學語法),但它不能很好地工作(例如,如果用戶鍵入\frac{5}{17*x}
並假定它是正確的語法,然後評估它並從MathJS中得到一個錯誤)。
目前,我看到三種方式進行:(?也許切換到MathJax-哪個更好)
- 繼續與我有什麼。
- 查找工具,做兩渲染和評估(無論是在乳液或其他語言)
- 找到兩個工具的渲染和密切評估(如果不相同)的語法
- 寫我自己的渲染和評估工具,建議使用here。我寧願不這樣做,因爲它看起來很乏味,而且我不想重新發明輪子。
什麼是韌皮方式做到這一點?
更新1:通過查看altJS可用替代語言列表後,我想我可以使用Python,Ruby或Basic作爲用戶輸入的語言。如果我這樣做了,它會爲渲染提供很多可能性(從技術上講,它不是「渲染」,但只是想想那裏有多少個語法輪廓線)。但是,我不希望用戶訪問這些語言的更高級元素,因爲這會給我的用戶帶來困惑,也可能是不安全的(例如使用eval
)。我只希望用戶能夠使用數學運算,變量(僅限於我指定的那些,也可以由用戶創建的變量)和函數(僅限那些我指定可以使用,也可以由用戶定義的函數)。有沒有辦法限制可以使用的語言子集?
更新2:我看了看周圍的一些altJS頁的詳細,並發現幾乎所有的語言被設計成編譯語言XYZ爲JavaScript,然後在網頁上運行的JavaScript,而不是運行語言XYZ 在頁面上。我沒有看過每一個,但他們大多數似乎是這樣的。其他人,比如Brython,似乎被設計成在瀏覽器中運行XYZ語言,但是作爲JavaScript的替代/補充,而不是作爲用戶的輸入語言。是否有一些解決方法,所以我可以使用這些方法作爲輸入?
更新3:感謝@SpaceDog提供的信息,並指出我沒有具體說明用戶應該能夠實現的功能。所以,在這裏就是我想實現的功能:
- 基本操作(加法,減法,乘法,除法/分數,冪,根,模量)
- 函數(三角函數,日誌等。)
- 常量(例如,PI等)
- 變量(分配,再分配,以及使用它們)
- 用戶定義的函數
LaTeXCalc似乎滿足所有這些要求,除了最後一個。此外,它似乎不在Javascript中。
這使我想到了另一個想法:使用類似MathJax的表示,然後使用Wolfram Alpha API實際處理計算。好處是它可以爲輸入和輸出提供更高級的選項。但是,應用程序將變得毫無用處(爲什麼不使用wolframalpha.com,如果計算器實際上只是一個克隆?),它會花錢,並且該應用程序無法脫機工作(這是一個桌面應用程序,用HTML編寫/ CSS/JS)。關於這個的想法?
也許我對[this](http://stackoverflow.com/a/42232776)類似問題的回答可能有幫助。 – Jeff