![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 224 Pomógł: 3 Dołączył: 24.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam, a więc tak... czytałem trochę o wyrażeniu regularnym w javascript... i mam formularz, w którym wpisuję oceny po przecinku i w następnym pliku przetwarzam i dodaję oceny do bazy danych... to działa, ale wyrażenie regularne miałoby sprawdzać, czy nie użytkownik nie wpisuje sobie: 6+.7-,2,9+ (2 może ale chodzi o ciąg...)...
Podejrzewać tylko mogę, że pojawi się jakaś zmienna lub coś, ale dokładnie nie wiem co ;] Więc jak to zrobić? Dzięki z góry... Bardzo proszę o zainteresowanie się tym tematem! Pilne! Ten post edytował kuba_pilach 21.02.2011, 18:50:52 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 107 Pomógł: 30 Dołączył: 19.02.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Proponuję taką receptę:
1. Zrób split "po przecinkach", uzyskując tablicę ocen. 2. Każdą z nich sprawdź wyrażeniem regułowym. Jak rozumiem - dozwolone oceny to: 2, 2+, 3-, 3, 3+, ... 5, 5+, 6-, 6. Co do wyrażeń regułowych w JS - zajrzyj na stronę http://www.w3schools.com/js/js_obj_regexp.asp Z grubsza w połowie tej strony jest opis funkcji test(), a trochę poniżej klawisz "Test it yourself". Na stronie "Test it yourself" poeksperymentowałem z wyrażeniami regułowymi i wymyśliłem coś takiego: var patt1=new RegExp("^2[\+]?$|^[3-5][+-]?$|^6[\-]?$"); document.write(patt1.test("6+")); Za "6+" w funkcji "test" wstaw inne wartości, prawidłowe i błędne (na stronie "Test it yourself"). Jak widać we wzorcu: - wariant 1 - to "2" z opcjonalnym plusem (2[\+]?), - wariant 2 - ocena od 3 do 5 z opcjonalnym plusem lub minusem, - wariant 3 - ocena od 6 z opcjonalnym minusem. Znaki ^ i $ to początek i koniec string'u. Oczywiście, w powyższym kodzie "document.write" jest tylko na potrzeby eksperymentu. Ty musisz kolejne oceny: - sprawdzić tym wzorcem, - jeżeli dla którejś oceny składowej funkcja "test" da wynik false - to nie znalazłeś "pokrycia" żadnym z trzech wariantów, więc testowana ocena jest "nielegalna". Co do składni wyrażeń regułowych - dobry opis jest choćby w dokumentacji PHP: http://pl.php.net/manual/en/reference.pcre...tern.syntax.php Oczywiście "wyższe bajery" są w PCRE, ale podstawy obowiązują i wJS. A co do Twojego kodu (spr_oceny): 1. Jeżeli funkcja uruchomiona w ramach onsubmit chce ten submit zablokować, to powinna zwrócić false. U Ciebie tego nie ma. 2. Czy czasem w każdym z 4 warunków składowych zamiast "==" nie powinno być "!="? Przecież to znalezienie któregoś z tych wariantów oznacza błąd. Ten post edytował Valdi_B 22.02.2011, 20:35:21 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 02:14 |