Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Regexp almeno 1 stano comportamento

    Ciao a tutti,
    usando questa combinazione di asserzioni e quantificatori, stavo cercando di scrivere una regexp che mi obbligasse una parola (password) a contenere almeno 1 lettera maiuscola,1 minuscola,1carattere speciale e 1 numero e fosse tra gli 8 e 20 caratteri.

    tutto bene su circa 2000 tentativi, ma poi mi appare un true su una stringa che non dovrebbe passare e non ne capisco il perchè!

    Codice PHP:
    function a($pass){
    return 
    preg_match("/((?=.*[a-z])(?=.*[A-Z])(?=.*[\.\+\$@!_])(?=.*[0-9]).{8,20})/",$pass,$pw)
    }

    var_dump(a("347ri78.54124Ae")); #vera
    var_dump(a("347ri78.,54124Ae")); #vera!!!!!!!!!!!!!!!!!!!!! 
    la virgola non è un carattere consetito, eppure mi dice che è vera!!!!
    Luca Bottoni's World
    www.bottonisworld.com

  2. #2
    in realtà la regexp lavora giusto, perchè mi controlla che ci sia almeno uno dei caratteri, ma non blocca se ci sono caratteri diversi!!
    Luca Bottoni's World
    www.bottonisworld.com

  3. #3
    in realtà la regexp lavora giusto, perchè mi controlla che ci sia almeno uno dei caratteri, ma non blocca se ci sono caratteri diversi!!


    forse così dovrebbe funzionare

    Codice PHP:
    function a($pass=false)
        {
        
    $r=new stderror();
        if(
    $pass==false){return false;}
        if(isset(
    $pass)  &&  preg_match("/((?=.*[a-z])(?=.*[A-Z])(?=.*[\.\+\$@!_])(?=.*[0-9]).{4})[a-zA-Z\.\+\$@!_0-9]{4,16}/",$pass,$pw))
            {
            return (
    $pw[0]==$pass)?true:false;
            }
        else
            {return 
    false;}
        }

    var_dump(a("347ri.,124Ae"),"347ri.,124Ae");
    echo 
    "
    "
    ;
    var_dump(a("347ri.#124Ae"),"347ri.#124Ae");
    echo 
    "
    "
    ;
    var_dump(a("347ri.124Ae"),"347ri.124Ae");
    echo 
    "
    "
    ;
    var_dump(a("aaaa1aAb+bbb"),"aaaa1aAb+bbb");
    echo 
    "
    "
    ;
    var_dump(a("a1Ab+11"),"a1Ab+11");
    echo 
    "
    "
    ;
    var_dump(a("a1Ab+118901234567890"),"a1Ab+118901234567890");
    echo 
    "
    "
    ;
    var_dump(a("a1Ab+1189012345678901"),"a1Ab+1189012345678901");
    echo 
    "
    "

    stamperà

    codice:
    bool(false) string(12) "347ri.,124Ae"
    bool(false) string(12) "347ri.#124Ae"
    bool(true) string(11) "347ri.124Ae"
    bool(true) string(12) "aaaa1aAb+bbb"
    bool(false) string(7) "a1Ab+11"
    bool(true) string(20) "a1Ab+118901234567890"
    bool(false) string(21) "a1Ab+1189012345678901"
    Luca Bottoni's World
    www.bottonisworld.com

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.