Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Konwertowanie stringu na wynik/wartosc (?)
Forum PHP.pl > Forum > Po stronie przeglądarki
Wuesek
Witam.
Chodzi mi o to, zeby po podaniu jakiegos dzialania matematycznego w inpucie (np. 5+3), i ew. zapisanie jego wartosci w zmiennej, JS po jej wywolaniu zwrocil nie wartosc inputa, a wyniku tego dzialania.
Czy trzeba tu uzyc czegos w rodzaju parseInt? Jak tak, to jak? :]
skowron-line
eval ale napewno ktoś to napisze
"eval is evil" smile.gif
Wuesek
Dzieki wielkie, uzylem tego, ale nie ma jakiejs innej, bezpieczniejszej metody?
skowron-line
Możesz sam takową napisać, no ale dla złożonych działań matematycznych może być problem.
kamil4u
Akurat w tym wypadku eval jest chyba najlepszym rozwiązaniem. Innym jest np. użycie wyrażeń regularnych lub indexOf + zamiana ciągu na liczbę(parseInt lub parseFloat) + odpowiednich obliczeń matematycznych. Tylko to nie będzie raczej takie poste. A dla złożonych obliczeń to nawet eval nie pomoże smile.gif
Crozin
W tym miejscu powinieneś dokładnie opisać sytuację. Kto będzie tego używać i jakie możliwości ma to mieć.

Cytat
Akurat w tym wypadku eval jest chyba najlepszym rozwiązaniem.
Eval nigdy nie jest dobrym rozwiązaniem. A tym bardziej w przypadku, gdy kod do wykonania pochodzi nie wiadomo od kogo. MOże być co najwyżej najłatwiejszym rozwiązaniem.
kamil4u
Cytat
A tym bardziej w przypadku, gdy kod do wykonania pochodzi nie wiadomo od kogo

Dość łatwo sprawdzić czy dane są takimi danymi jak trzeba smile.gif - Wydaje mi się też, że eval będzie też najszybszym(i najkrótszym) rozwiązaniem - a co Ty proponujesz? Załóżmy, że chodzi o obliczania z +,-,*,/,.,( i ) .
Crozin
No w przypadku JS eval nie jest w sumie aż tak straszny (przecież zawsze każdy może sobie uruchomić dowolny kod na stronie), jednak nadal jest to niezwykle niebezpieczna cecha języka i powinno się tego unikać za wszelką cenę.

Jeżeli chodzi tylko o podstawowe operacje i tylko na liczbach, to rzeczywiście... eval może być jakimś rozwiązaniem. Jednak nawet tak proste operacje jak obsługa błędów będą na pewno bardzo utrudnione.

Bardziej sensownym rozwiązaniem (jednak dużo bardziej skomplikowanym) wydaje się być napisanie parsera wyrażeń matematycznych.
Wuesek
Nie no, jeszcze jestem za slaby w JS zeby pisac samemu parsery. Trzeba mi narazie tylko do kalkulatorka, i juz uzylem evala, ale jakbym cos powazniejszego pisal, to by sie przydalo jakos inaczej to zrobic; a na pewno jak bym pisal w PHP.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.