Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/03/2011, 17h11   #1
Nouveau Membre du Club
 
Homme Marc Bellêtre
Étudiant
Inscription : mars 2011
Messages : 59
Détails du profil
Informations personnelles :
Nom : Homme Marc Bellêtre
Âge : 20
Localisation : France, Seine Maritime (Haute Normandie)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2011
Messages : 59
Points : 26
Points : 26
Par défaut Javascript - Calculatrice

Bonjour,

Je suis débutant en Javascript et j'ai besoin de votre aide pour boucler mon projet de fin d'année qui est la réalisation d'un logiciel d'interrogation en PHP/MySQL.
Pour compléter le logiciel, j'ai mis en place une calculatrice en Javascript. Malheureusement j'ai un problème avec les regex et je ne parviens décidément pas à le résoudre. Voici le code qui me pose problème :

Code :
1
2
3
4
5
6
7
8
9
10
11
 
function resultat() {
    var x = 0;
    if (verification(window.document.calculatrice.affiche.value)) {
        var exp = new RegExp("[0-9]+\^[0-9]+","g");
        window.document.calculatrice.affiche.value.replace(exp,"Math.pow($1,$2)");
 
        x = eval(window.document.calculatrice.affiche.value);
    }
    window.document.calculatrice.affiche.value = x;
}
Bien sûr, ce n'est pas terminé. Ici, c'est uniquement pour remplacer le caractère "^" par "Math.pow(nb1, nb2)". Le problème, c'est que Javascript a l'air de prendre ce caractère pour un "-", et lorsque je tape par exemple 3^2, la calculette m'indique 1...

Merci d'avance !
Prettyletter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 17h33   #2
Modérateur
 
Avatar de Nesmontou
 
Homme Benjamin PREVOT
Architecte de système d'information
Inscription : septembre 2004
Messages : 1 568
Détails du profil
Informations personnelles :
Nom : Homme Benjamin PREVOT
Âge : 30
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : Finance

Informations forums :
Inscription : septembre 2004
Messages : 1 568
Points : 2 493
Points : 2 493
Bonjour,

Tu peux essayer ceci
Code :
1
2
3
4
5
6
7
8
9
10
11
function resultat() {
    var x = 0;
    var value = window.document.calculatrice.affiche.value;
    if (verification(value)) {
        var exp = new RegExp("^([0-9]+)\\^([0-9]+)$","g");
        value = value.replace(exp,"Math.pow($1,$2)");
 
        x = eval(value);
    }
    window.document.calculatrice.affiche.value = x;
}
Non testé

Il manquait :
  • les parenthèses capturantes
  • la réassignation de value

Bon développement
__________________
Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

F.A.Q. : Java, PHP, (X)HTML / CSS

N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème
Nesmontou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 17h52   #3
Nouveau Membre du Club
 
Homme Marc Bellêtre
Étudiant
Inscription : mars 2011
Messages : 59
Détails du profil
Informations personnelles :
Nom : Homme Marc Bellêtre
Âge : 20
Localisation : France, Seine Maritime (Haute Normandie)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2011
Messages : 59
Points : 26
Points : 26
Parfait, ça fonctionne
Merci !
Prettyletter est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h00.


 
 
 
 
Partenaires

Hébergement Web