首頁 > web前端 > js教程 > 如何在沒有「eval()」的情況下安全地計算 JavaScript 中的字串公式?

如何在沒有「eval()」的情況下安全地計算 JavaScript 中的字串公式?

Susan Sarandon
發布: 2024-11-16 16:50:03
原創
872 人瀏覽過

How to Safely Evaluate String Formulas in JavaScript Without `eval()`?

在沒有eval() 的情況下計算JavaScript 中的字串值

問題:

問題:

問題:

問題:

1

2

3

4

5

function evil(fn) {

  return new Function('return ' + fn)();

}

 

console.log(evil('12/5*9+9.4*2')); // => 40.4

登入後複製

問題:

許多JavaScript 開發人員使用eval () 函數計算儲存在字串中的公式。然而,eval() 是不安全的,因為它可以執行任意程式碼。有安全的替代方案嗎?

答案:

是的,您可以使用 Function() 建構子安全地計算包含公式的字串。
  • 程式碼:
解釋:Function() 建構子接受一個字串作為參數並傳回一個函數。將“return”關鍵字新增至字串的開頭,以確保函數計算結果為公式的結果。 優點:安全性:此方法透過將計算限制為公式字串來防止惡意程式碼的執行。 可靠性:與 eval() 不同,Function() 建構子總是會傳回公式的結果,無論語法或變數如何使用過。

以上是如何在沒有「eval()」的情況下安全地計算 JavaScript 中的字串公式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板