2017-07-28 59 views

回答

1

首先要注意的是,您的eval不允許執行任意的,未經過處理的JavaScript。 XSS攻擊可能非常令人討厭。

其次,使用正則表達式。

function solve(math) { 
 
    return Number(eval(math.replace(/√(\d+)/g, 'Math.sqrt($1)'))); 
 
} 
 

 
console.log(solve('4 * √64 + 10'));

如果您需要能夠也採取任意嵌套的表達式的平方根,您將需要一個實際的解析器,在這種情況下,你應該使用其配備到庫還要評估解析的數學表達式,如math.js