Bonjour,

Je suis train de faire une calculatrice en Javascript/HTML avec affichage sur une ligne.

Les opérateurs et les nombres sont donc présent dans le même textaera ou input.

Pour commencer j'ai utilisé la methode eval(string), mais celle-ci ne fonctionne pas quand on veut utiliser les methodes Math.sqrt, Math.Pi etc...

Quelle est l'alternative?

Voici mon code avec une regex pour Math.sqrt qui renvoi "illegal character" sur firefox:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
equal.onclick = () => {  
	let resultat = calculLine.value; //calculLine represente un textaera
	let regexSquare = /(^\(?\d*\)?$)²/;
 
	resultat = resultat.replace(regexSquare,"Math.sqrt($1)" );
 
		try 
		{
		    result.innerHTML = `${resultat} = ${eval(resultat)}`; } //result est une div servant à l'affichage du resultat
		catch(e) 
		{
		    result.innerHTML=`${resultat} => Syntax Error`; //
		}
 
};