Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: sprawdzenianie 3 litery, 3 cyfry w ciągu
Forum PHP.pl > Forum > PHP
tomekp
W jaki sposób mogę sprawdzić czy w danym ciągu występują minimum 3 litery i 3 cyfry ?
Chcę to wykorzystać do sprawdzania hasła podanego przez użytkownika, żeby nie było zbyt proste.
Kuziu
  1. <?
  2. $ilosc_liter=0;
  3. $ilosc_cyfr=0;
  4. $a=&#092;"a2a4add5\";
  5. for($i=0;$i<strlen($a);$i++){
  6. if(ereg('[a-z]|[A-Z]',substr($a,$i,1))){
  7. $ilosc_liter++;
  8. }
  9. if(ereg('[1-9]',substr($a,$i,1))){
  10. $ilosc_cyfr++;
  11. }
  12. }
  13. echo($ilosc_liter);
  14. echo($ilosc_cyfr);
  15. ?>
bendi
Eeee a nie lepie tak:
  1. <?php
  2.  
  3. if( !( preg_match( '%[a-z]{3,}%i', $sString ) && preg_match( '%[d]{3,}%', $sString ) ) ) {
  4. //tutaj wyswietl blad
  5. }
  6. ?>
Kuziu
Nie znam sie za bardzo na wyrażeniach regularnych więc musiałem sobie troche inaczej poradzić tongue.gif
bendi
Cytat(Kuziu @ 2005-01-03 15:13:29)
Nie znam sie za bardzo na wyrażeniach regularnych więc musiałem sobie troche inaczej poradzić tongue.gif
1 2 i pcre pattern syntax
tiraeth
Cytat(bendi @ 2005-01-03 14:08:54)
Eeee a nie lepie tak:
  1. <?php
  2.  
  3. if( !( preg_match( '%[a-z]{3,}%i', $sString ) && preg_match( '%[d]{3,}%', $sString ) ) ) {
  4. //tutaj wyswietl blad
  5. }
  6. ?>

Z Twojego kodu wynika, że aby poprawnie działał skrypt ciąg znaków musi wyglądać np. tak:

  1. <?php $sString = 'php123qw5sz'; ?>

Czyli 3 litery muszą być pod rząd, tak samo 3 cyfry....
bendi
  1. <?php
  2.  
  3. $sString = 'aafdsafdsafasdsa1aaafdsafdsafasdsa1aaafdsafdsafasdsaa';
  4. if( !( preg_match( '%([a-z].*?){3,}%i', $sString ) && preg_match( '%([d].*?){3,}%i', $sString ) ) ) {
  5. echo 'bla bla';
  6. }
  7.  
  8. ?>

To dziala poprawnie, ale podejrzewam ze bedzie to mialo starszny wplyw na szybkosc dzialania w przypadku bardzo dlugich ciagow.
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.