Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> numer lokalu - wyrażenia regularne
emil_seba
post 25.08.2010, 10:27:47
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 24.05.2010

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


Witam, chce sprawdzić wyrażeniem regularnym poprawność numeru lokalu. Napisałem takie coś:
ale nie działa sad.gif

  1. if(!preg_match( '/^[0-9]{1,3}/ [0-9]{1,3}$/' , $NumerLokalu ))
  2. {
  3. $blad_tzt .= 'Popraw numer lokalu';
  4. $blad = true;
  5. }
  6.  
  7.  


Nie wiem czy w Polsce są aż takie kosmiczne numery domów(lokali) np 121/57 ale kto wie znając urzędników.
Moje pytanie brzmi jak napisać wyrażenie by sprawdzało numery domów z slashami lub bez nich w zależności czy go wpisano?
Próbowałem już tak:
  1. f(!preg_match( '/^[0-9]{1,3}\\? [0-9]{,3}$/' , $NumerLokalu )) // tu jezt z backslashem
  2.  
  3. f(!preg_match( '/^[0-9]{1,3} \/?[0-9]{,3}$/' , $NumerLokalu ))
  4.  
  5. f(!preg_match( '/^[0-9]{1,3} [\/?][0-9]{,3}$/' , $NumerLokalu ))
  6.  
  7. f(!preg_match( '/^[0-9]{1,3} [\\?][0-9]{,3}$/' , $NumerLokalu ))
  8.  
  9.  
  10. f(!preg_match( '/^[0-9]{1,3} [\\]?[0-9]{,3}$/' , $NumerLokalu ))
  11.  
  12.  
  13. f(!preg_match( '/^[0-9]{1,3} [\/]?[0-9]{,3}$/' , $NumerLokalu ))
  14.  
  15.  
  16.  


Ma ktoś jakiś pomysł? Dziękuje z góry.

Ten post edytował emil_seba 25.08.2010, 10:51:34
Go to the top of the page
+Quote Post
flashdev
post 25.08.2010, 10:39:50
Post #2





Grupa: Zarejestrowani
Postów: 812
Pomógł: 117
Dołączył: 2.12.2008

Ostrzeżenie: (10%)
X----


  1. preg_match( '/^[0-9]{1-3}\/[0-9]{1-3}$/' , $NumerLokalu )


Niektóre znaki wypada escape`ować. Skąd PHP ma znać Twoje intencje winksmiley.jpg

Edit:

Cytat(emil_seba @ 25.08.2010, 11:27:47 ) *
[...]
Moje pytanie brzmi jak napisać wyrażenie by sprawdzało numery domów z slashami lub bez nich w zależności czy go wpisano?
[...]


  1. preg_match( '/^[0-9]{1-3}(\/[0-9]{1-3})?$/' , $NumerLokalu )


Ten post edytował flashdev 25.08.2010, 10:40:18


--------------------
Go to the top of the page
+Quote Post
wookieb
post 25.08.2010, 10:40:33
Post #3





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Nie ma 100% metody wykrywającej numer lokalu
Dlaczego? Ponieważ ludzie zapisują go w przeróżnych formach
1) Ulica numer_bloku/numer_mieszkania
2) Ulica numer_domu
3) Ulica numer_bloku przez numer_mieszkania
4) Ulica numer_bloku m. numer_mieszkania

Oczywiście można by zadbać tylko o pierwszą wersję ale czy jest sens?
Jeżeli projektujesz formularz to dodaj oddzielne pole na numer bloku i mieszkania.
Jeżeli nie jest to formularz zaimplementuj 1 i 4 metodę ale to nie zwalnia Cię z obowiązku sprawdzenia wyciągniętych danych

  1. if(!preg_match( '/^[0-9]{1-3}\/ [0-9]{1-3}$/' , $NumerLokalu ))


--------------------
Go to the top of the page
+Quote Post
emil_seba
post 25.08.2010, 10:53:42
Post #4





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 24.05.2010

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


działa dzięki smile.gif sorry, że z początku napisałem źle ilość powtórzeń elementów zamiast {1,3} napisałem {1-3}. Jeszcze raz dzięki smile.gif
Go to the top of the page
+Quote Post
sunpietro
post 25.08.2010, 10:59:31
Post #5





Grupa: Zarejestrowani
Postów: 262
Pomógł: 26
Dołączył: 23.01.2009
Skąd: eZ Systems

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


nie zapominaj że czasem bloki mają jeszcze literki obok cyfry winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2025 - 07:16