Avatar billede laksen Nybegynder
05. oktober 2006 - 18:33 Der er 6 kommentarer og
1 løsning

eval() og regne funktion

Hej eksperter

Jeg har lavet et lille script, hvor man kan beregne simple matematiske udregninger.

Jeg har benyttet funktionen eval(), der så lægger sammen, trækker fra osv.

Mit problem er, at hvis eval() ikke forstår udtrykket (f.eks. fordi der er tekst med) melder hele siden javascript-fejl - det dumme lille gule ikon i IE. Kan man ikke lave en lille kontrol-funktion, så siden i stedet kommer med en fejl-meddelelse til brugeren, hvis der er fejl i feltet?

Findes der for øvrigt funktioner, der er bedre egnet til formålet end eval()?
Avatar billede roenving Novice
06. oktober 2006 - 15:43 #1
Til det andet kan svares, at du i så fald skal parse de indtastede stykker (og det vil være nødvendigt, hvis du skal bruge specielle funktioner som kvadratrod, potensopløftning, Π, sinus m.m.fl. ...

-- der er faktisk en try/catch-konstruktion i javascript (på det punkt har den faktisk arvet det samme som Java, som ellers ikke har noget med js at gøre !-)

F.eks. sådan:

//udgangspunkt, at indtastningen ligger i et tekstfelt i en form, hvor også en knap findes:
//<input type="button" value="Beregn udtryk" onclick="udregn(this.form);return false;">
function udregn(f){
  try{
    var udtryk = f.indtastUdtryk.value;
    alert("Beregningen af udtrykket:\n\n" + udtryk + "\n\nGiver resultatet: " + eval(udtryk));
  }catch(e){
    alert("Der er fejl i udtrykket\n\nJavascript-fejl:\n\n" + e.message);
  }
}
Avatar billede roenving Novice
06. oktober 2006 - 15:44 #2
-- og &#928; er tegnet for pi !o]
Avatar billede laksen Nybegynder
06. oktober 2006 - 16:07 #3
Jamen det var da herligt med den try - catch funktion.

Den løste mit problem med javascript-fejlen i IE.

Den returnerer dog fejl uanset hvad i Firefox hos mig. Dur funktionen kun i IE?
Avatar billede roenving Novice
06. oktober 2006 - 16:23 #4
Næh ...

-- og det fungerer ens i mine browsere (bortset fra detaljeringsgrad m.m. i fejlmeddelelserne !-)

-- hvordan ser dit script ud ?-)
Avatar billede laksen Nybegynder
06. oktober 2006 - 16:53 #5
Det var min egen fejl. Jeg havde lagt submit-kaldet på et billede og så forstod den sjovt nok ikke 'this.form' kommandoen. Lavede den bare om til 'document.regn' og kaldte formen for 'regn'.

Tak for hjælpen!

Du lægger bare et svar.
Avatar billede roenving Novice
06. oktober 2006 - 17:21 #6
Velbekomme '-)
Avatar billede roenving Novice
06. oktober 2006 - 17:40 #7
-- og tak for point ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester