Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyrażenia regularne - PILNE
Forum PHP.pl > Forum > PHP
Aztech
Jak napisać wyrażenie regularne takie że w parsowanej zmiennej tekstowej będzie:
1) co najmniej jedna duża litera
2) co najmniej jedna mała listera
3) co najmniej jedna cyfra
4) dowolna inna ilość znaków

Zrobiłem coś takiego i nie działa oczywiście
  1. <?php
  2.  
  3. if (ereg("[A-Za-z0-9]")) {
  4. /* kod */
  5. }
  6. ?>


po przeczytaniu manuala wymyśliłem coś takiego ale też nie działa tak jakbym chciał

  1. <?php
  2.  
  3. if (ereg("([A-Z]+)*([a-z]+)*([0-9]+)*(.)")) {
  4. /* kod */
  5. }
  6.  
  7.  
  8.  
  9.  
  10. ?>



i jeśli można to coś takiego jeszcze -> daję linka, żeby nie dublować postów
Radarek
Przede wszystkim zapominasz o 2 parametrze funkcji ereg
Cytat
Description
int ereg ( string pattern, string string [, array &regs] )


Latwiej bedzie ci zbadac kazda z tych zaleznosci z osobna, czyli

  1. <?php
  2.  
  3. if (preg_match("/[a-z]/", $tekst)) {
  4.  echo "jest mala litera";
  5. }
  6.  
  7. if (preg_match("/[A-Z]/", $tekst)) {
  8.  echo "jest duzalitera";
  9. }
  10.  
  11. if (preg_match("/[0-9]/", $tekst)) {
  12.  echo "jest cyfra";
  13. }
  14.  
  15. ?>


Uzywaj funkcji preg_* gdyz sa one kompatybilne z regexami perla, a co za tym idzie sa popularniejsze (dodatkowo funkcje preg_* sa szybsze ale to maly szczegol).
Aztech
Dzięki - działa
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.