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

    Espressione regolari max e min caratteri

    Ciao a tutti, sto utilizzando uno script trovato in rete che attraverso una validazione in ajax ed un invio dati in php, permette all'utente di inviarmi un messaggio/email.

    All'interno dello script trovo questa espressione regolare:

    codice:
    var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
    che mi permette di controllare se l'email inserita nel form è scritta correttamente oppure no. Adesso però ho la necessità di scrivere altre due espressioni regolari.

    1) Il campo nome deve avere almeno 3 caratteri.
    2) Il campo messaggio non può avere più di 400 caratteri.

    Non essendo assolutamente pratica di espressioni regolari, prima di tutto mi chiedo.. E' possibile concepire quelle regole? Come?

    Ringrazio infinitamente chiunque abbia la pazienza di aiutarmi. Ho già provato a leggere qualche guida e manuali di riferimento, ma non riesco a trovare la regola adatta.

  2. #2
    Questo OTTIMO ARTICOLO di PHPro.org spiega alla perfezione come comporre la propria espressione regolare e ti consiglio di studiarlo, anche se in inglese è davvero molto valido!

    Detto questo, per controllare la lunghezza di una stringa testuale, ti basta fare come segue:
    Codice PHP:
    $nomeRegExp "#^[\\w]{3, }$#i"
    Stesso discorso per i testi, ma invertendo i parametri sul quantificatore.
    Codice PHP:
    $textRegExp "#^[\\w]{ , 400}$#i"
    Come vedi, io ho usato il cancelletto come delimitatore della regexp, ma te puoi usare quello che credi.
    Ho usato il caret (^) come carattere di inizio del soggetto, e ($) come carattere per indicare la fine del soggetto. Per il testo è maggiormente utile, in quanto il testo potrebbe essere multilinea.
    Ho usato il modificatore i per rendere la regexp case-insensitive.
    Le parentesi quadre contengono una classe di definizione dei caratteri.
    La sequenza speciale \w indica "qualsiasi carattere alfanumerico".
    Potresti avere problemi con alcuni caratteri non previsti da questo caso (tipo i segni di punteggiatura nel caso del testo).
    In quel caso dovresti aggiungerli fuori dalla classe di caratteri.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  3. #3
    Intanto grazie infinite per la risposta. Sicuramente il link che mi hai fornito lo leggerò al più presto. Tuttavia credo di aver sbagliato categoria per il mio messaggio.. Dovrei spostarlo nella sezione javascript perché di fatto la porzione di codice che avevo pubblicato nel mio primo post era scritta in questo linguaggio.

    Adesso proverò a cercare qualcosa che faccia al caso mio

  4. #4
    Si avevo notato che fosse in Javascript.
    Le differenze tra i due modi di scrivere le regexp non sono poi così sostanziali.
    Per una questione però di sicurezza, ti invito a non lasciare i controlli sulla validità delle input da form al solo JS.
    Anzi... ti dico di fare il contrario.
    Con JS puoi rendere il tuo sito più bello ed usabile per gli utenti, ma di certo non sicuro.
    I controlli falli sempre lato server!

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  5. #5
    Grazie per il consiglio lo farò sicuramente appena "passo" le variabili alla pagina in php che dovrebbe inviare l'email

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.