![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 16 Dołączył: 11.01.2009 Skąd: wrocław Ostrzeżenie: (0%) ![]() ![]() |
witam, mam pewien problem z validacją działania/obliczenia.
chcę sprawdzać czy działanie jakie wykonał użytkownik jest poprawne, tzn user może w wykonać jakieś działanie (nie wiem jakie). Dostaję to w postaci stringa i chciałbym je wykonać w js/ jquery jeśli działanie zostanie wykonane oznacza że jest prawidłowo napisane. Nie wiem (nie mogę znaleźć czegoś co mogło by to robić) jak wykonać to obliczenie. Dostaję np coś takiego: 1+1*(1-1+1%)/1 czy istnieje jakiś sposób na przekazanie takiego wyrażenia żeby sprawdzić czy da się je wykonać? jeśli ktoś nie zamknie np nawiasu może zwrócić error wtedy inforumję usera o niepoprawności działania |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Działanie jest nieprawidłowo sformułowane, bo mamy tam jakiś 1%, ale z niczego. Istnieje funkcja eval(), ale ona chyba nie zwróci Ci błędu, a jeśli zwróci, to w jakimś tam swoim formacie. Innym rozwiązaniem jest napisanie parsera, który wszystko po kolei sprawdzi i policzy.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 16 Dołączył: 11.01.2009 Skąd: wrocław Ostrzeżenie: (0%) ![]() ![]() |
no tak myślałem o zastosowaniu parsera.
Tylko miałem nadzieję że jest coś co sprawdzi poprawność operując na całości, właśnie w takim wypadku jak dałem powinno się wysypać (wtedy wiem że działanie jest niepoprawne). |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 175 Pomógł: 18 Dołączył: 11.06.2007 Skąd: Koszalin/Poznań Ostrzeżenie: (0%) ![]() ![]() |
Poczytaj o odwrotnej notacji polskiej, zbudowanie takiego parsera wcale nie jest trudne.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat Działanie jest nieprawidłowo sformułowane, bo mamy tam jakiś 1%, ale z niczego. Procent (%) to nic innego jak ładny znaczek dla wyrażenia 1 / 100. Wszystko jest poprawnie.Właściwie jedynym sensownym rozwiązaniem, pozwalającym jakąkolwiek kontrolę nad operacjami / błędami, jest stworzenie parsera i interpretera dla tych wyrażeń matematycznych. Z tego co widzę powinno nawet znaleźć się coś gotowego. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 16 Dołączył: 11.01.2009 Skąd: wrocław Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.06.2025 - 03:01 |