Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Impostare RegExp

  1. #1
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135

    Impostare RegExp

    Ciao, scusate come imposto una RegExp che deve prevedere un minimo di otto caratteri dei quali "uno" deve essere obbligatoriamente un numero ed un "altro" un carattere speciale (=,?,^,etc) ??? Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Mica facile ...

    poi dipende da come vuoi che sia l'ordine dei vari caratteri ..

    Per una cosa flessibile, dovresti fare piu` di una RegExp:
    codice:
    suppongo la stringa nella variabile str
    var otto = str.match(/.{8,}/);
    var num  = str.match(/.*\d.*/);
    var spec = str.match(/.*[\=\?\.].*/);
    if(otto && num && spec) {
      alert("stringa ok");
    } else {
      alert("non mi piace");
    }
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Me ne sono reso conto; al momento ho scritto questa di RegExp:
    codice:
    var re = new RegExp("^UTE[A-Z]{2}-[0-9]{2}$", "");
    che consente di avere password del tipo:
    codice:
    UTEDW-12
    è funzionate, ma chissà quali problemi causerà...

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    La tua RegExp non soddisfa i criteri dati nel primo post; o, meglio, e` un caso molto particolare di tali criteri.

    Dovresti quindi chiarire prima a te stesso, quali criteri vuoi adottare.

    Se la passwd la deve inserire l'utente, devi dare dei criteri e rispettarli.

    Ma una soluzione del tipo della mia (con tutte le varianti del caso) e` da escludere? Perche`?
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    No Mich non la voglio escludere... è che non sono capace di farla funzionare, tutto qui... per questo ho "glissato" sulla mia RegExp...

    La idea è che ogni utente si scelga la propria password, che non deve essere più lunga di otto caratteri e che dovrà avere al suo interno almeno un numero ed un carattere speciale...

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    E` chiaro che io ti ho proposto una sequenza di istruzioni, che vanno implementate nel tuo codice.
    Non conoscendo il tuo codice non posso aiutarti a modificarlo.

    Prova a postare il pezzetto di codice dove testi la tua regexp, e vediamo se qualcuno e` in grado di modificarlo per testare tre cose.


    PS. Se devi invertire un test con AND ( && ) devi usare OR ( || )
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    OK; grazie ecco il test:
    codice:
    <script><!--
    function validate(theform) {
    
    var re = new RegExp("^UTE[A-Z]{2}-[0-9]{2}$", "");
    
    if (!theform.new_code1.value.match(re))
    
    { 
    alert("La password inserita non è corretta!\nLa nuova password è obbligatoria nella forma:\n\nUTEXX-YY\n\nin cui le variabili X sono lettere e le variabili Y sono numeri."); 
    theform.new_code1.focus(); 
    theform.new_code1.select();
    return false; 
    } 
    
      return true;
      
    }
    
    // -->
    
     </script>
    
            <form name="form1" method="post" action="edit.asp" onSubmit="return validate(this)">

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    codice:
    function validate(theform) {
      var str = theform.new_code1.value;
      var t1 = !str.match(/.{8,}/);
      var t2 = !str.match(/.*\d.*/);
      var t3 = !str.match(/.*[\=\?\.].*/);
    
      if(t1 || t2 || t3) { 
        alert("La password inserita non è corretta! ..."); 
        theform.new_code1.value = ""; // cancella campo
        theform.new_code1.focus(); 
        //theform.new_code1.select(); // a che serve?
        return false; 
      } 
    
      return true;
    }
    Prova cosi`; poi se e` troppo permissiva, si puo` modificare
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  9. #9
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    1000 grazie è quello che cercavo...

    Un favore puoi leggere questa discussione?
    Sono forse stato troppo sintentico nell'esporre il problema?

    http://forum.html.it/forum/showthrea...hreadid=887412

    Ciao.

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.