2010-10-14 6 views
9

C'è un buon parser matematico in Javascript? Voglio essere in grado di analizzare qualcosa come:Javascript parser library

LOG(3.14)+5^2+POW(2,LN(X*2,Y)) 

Grazie,

+1

E 'questo per un posto di lavoro? Se no, userei questa come un'opportunità per scrivere la mia. – ChaosPandion

risposta

3

Utilizzare questo. Ha definito un oggetto "operatore" che consente di definire i propri operatori.

http://jsfromhell.com/classes/math-processor

Attenzione: utilizza with. Se non sai perché è pericoloso, scoprilo prima di usare questo codice in qualcosa di critico. In alternativa, puoi semplicemente riscriverlo senza with.

+1

Non mi preoccuperei troppo di 'with' per questo:' {p: MathProcessor.prototype} '. – ChaosPandion

6

Qui è un marchio nuova iniziativa:

http://mathjs.org

è dotato di un ampio e facile da usare parser che supporta anche l'assegnazione e l'utilizzo delle variabili e funzioni, come nel tuo esempio di espressione.

0

So che è una vecchia domanda, ma l'ho trovata per caso e ho something to help. Non completo come mathjs, ma utile e veloce.

1

Prova nerdamer

var result = nerdamer('log(3.14)+5^2+2^(log(X*2)/log(Y))').evaluate(); 
 
document.getElementById('text').innerHTML = result.text();
<script src="http://nerdamer.com/js/nerdamer.core.js"></script> 
 
<div id="text"></div>