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.aspZ 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.phpOczywiś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.