Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript] Konwertowanie stringu na wynik/wartosc (?), ...albo nie wiem jak to ujac...
Wuesek
post
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 18.08.2010
Skąd: Komancza (/Oslo)

Ostrzeżenie: (0%)
-----


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? :]
Go to the top of the page
+Quote Post
skowron-line
post
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


eval ale napewno ktoś to napisze
"eval is evil" (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Wuesek
post
Post #3





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 18.08.2010
Skąd: Komancza (/Oslo)

Ostrzeżenie: (0%)
-----


Dzieki wielkie, uzylem tego, ale nie ma jakiejs innej, bezpieczniejszej metody?
Go to the top of the page
+Quote Post
skowron-line
post
Post #4





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


Możesz sam takową napisać, no ale dla złożonych działań matematycznych może być problem.
Go to the top of the page
+Quote Post
kamil4u
post
Post #5





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

Ostrzeżenie: (0%)
-----


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 (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Crozin
post
Post #6





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
kamil4u
post
Post #7





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

Ostrzeżenie: (0%)
-----


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 (IMG:style_emoticons/default/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 ) .
Go to the top of the page
+Quote Post
Crozin
post
Post #8





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Wuesek
post
Post #9





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 18.08.2010
Skąd: Komancza (/Oslo)

Ostrzeżenie: (0%)
-----


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.

Ten post edytował Wuesek 18.10.2010, 15:22:50
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.12.2025 - 22:48