Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][JavaScript]Wyrażenie Regularne
kuba_pilach
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Valdi_B
post
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
Go to the top of the page
+Quote Post

Posty w temacie


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: 8.10.2025 - 02:14