Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> wyrażenie regularne sprawdzające poprawność miesiaca
zaba285
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 1.06.2009

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


witam, zrobiłem sobie małego potworka z wyrażenia regularnego, które ma dopuszczać tylko wartości od 1 do 12 w formularzu (cyfry symbolizujące miesiąc)

var miesiac = /(1|2|3|4|5|6|7|8|9|10|11|12)$/;

niestety nie działa, bo jak wprowadzę np 99 to przechodzi, a chce żeby powiadamiało przez alert:

if (!miesiac.test(FMonth.value)) komunikat = 'pole miesiac musi miec wartosc od 1 do 12';

pomoże ktoś?
Go to the top of the page
+Quote Post
vokiel
post
Post #2





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


A może bez kombinowania z wyrażeniami:
  1. <?php
  2. var FMonthVal = parseInt(FMonth.value);
  3. if (FMonthVal<13 && FMonthVal>0){
  4.    // ok
  5. }
  6. ?>


A jeśli już koniecznie na wyrażeniach, to musisz ustawić (0-1){1} dla pierwszego znaku, i (0-9){1} dla drugiego jeśli pierwszy 0 i (1-2){1} jeśli pierwszy równy 1. Więc robi się to już ciut bardziej skomplikowane (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował vokiel 9.07.2009, 13:34:28
Go to the top of the page
+Quote Post
Fifi209
post
Post #3





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Nie wiem po co bawić się z wyrażeniami jak można po prostu instrukcjami warunkowymi sprawdzić...

Kod
/(1|2|3|4|5|6|7|8|9|10|11|12)$/;


Po pierwszym slashu daj ^ i będzie śmigało raczej.

Kod
/^(1|2|3|4|5|6|7|8|9|10|11|12)$/;
Go to the top of the page
+Quote Post
zaba285
post
Post #4





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 1.06.2009

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


Cytat(fifi209 @ 9.07.2009, 17:46:34 ) *
Nie wiem po co bawić się z wyrażeniami jak można po prostu instrukcjami warunkowymi sprawdzić...

Kod
/(1|2|3|4|5|6|7|8|9|10|11|12)$/;


Po pierwszym slashu daj ^ i będzie śmigało raczej.

Kod
/^(1|2|3|4|5|6|7|8|9|10|11|12)$/;

masz racje, zrobiłem listę, bo to lepsze rozwiązanie:
  1. <?php
  2.            
  3.                echo "<select name='FMonth'>";
  4.                for ($i=1; $i<13; $i++) {
  5.                echo "<option value='$i'>$i</option>";
  6.                }
  7.            ?>

a to pytanie to przez ciekawość, dociekliwość i chęć ogarnięcia wyrażeń regularnych ;]
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: 22.08.2025 - 13:24