Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    [regular expression] per i nick name degli istant message

    sto creando una pagina per i profili degli iscritti di un portale, con la possibilità di inserire i nick o gli indirizzi dei più famosi messenger:

    icq
    c6
    yahoo
    msn
    aim
    odigo

    vorrei fare con le regular expression dei modi semplici per controllarne la validità

    icq richiede un numero di lunghezza massima 20 caratteri

    vi posto le regole di c6
    Puoi usare: lettere dell'alfabeto minuscole, numeri (max 4) e i caratteri speciali (. _ -). Puoi inserire un solo carattere speciale, ma non all'inizio o alla fine del tuo nick. Non sono ammessi nick offensivi!
    yahoo usa gli indirizzi e-mail

    msn pure

    aim
    3-16 letters or numbers, must begin with a letter

    odigo
    30 caratteri alfanumerici


    considerando che la maggior parte ammette ",", "_" e "-"

    sapreste consigliarmi le espressioni per realizzare dei controlli efficaci e veloci?

    grazie, Totò
    Totò, vero ma strano
    www.ateicos.com

  2. #2
    si vivono molte vite e si muore una volta sola

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    96
    intanto dal client tu potrai ricavare il tipo di intant messager she usa, a quel punto con una banale serie di if puoi controllare le seguenti espressioni:
    per aim
    preg_match("/^([a-zA-Z]{1})([\w]{3,16})$/i","aim")
    per le e-mail
    function is_email_valid($email) {
    if(eregi("^[a-z0-9._-]+@[a-z0-9._-]+.[a-z]{2,4}$", $email)) return TRUE;
    else return FALSE;
    }

    sono due esempi d'uso di preg_match ed eregi (io preferisco la seconda...). L'implementazione sta alla tua fantasia...

  4. #4
    Originariamente inviato da giohappy
    intanto dal client tu potrai ricavare il tipo di intant messager she usa, a quel punto con una banale serie di if puoi controllare le seguenti espressioni:
    per aim
    preg_match("/^([a-zA-Z]{1})([\w]{3,16})$/i","aim")
    per le e-mail
    function is_email_valid($email) {
    if(eregi("^[a-z0-9._-]+@[a-z0-9._-]+.[a-z]{2,4}$", $email)) return TRUE;
    else return FALSE;
    }

    sono due esempi d'uso di preg_match ed eregi (io preferisco la seconda...). L'implementazione sta alla tua fantasia...
    lo so, è che con le espressioni regolari sono agli inizi per non dire che le sconosco quasi.

    quella della e-mail la usavo già da tempo pur non comprendendone appieno il significato.

    per gli username e le password tramite l'aiuto degli altri forumisti ho creato due funzioni di controllo apposite.

    per questi im intendevo fare qualcosa del genere, però ogn'uno di essi ha delle regole proprie particolari.
    Totò, vero ma strano
    www.ateicos.com

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    96
    bhe, devi certamente crearti delle regole per ognuno.
    ad esempio per ICQ:
    function is_icq($ICQ) {
    if(eregi("^[0-9]{20}$", $ICQ)) return TRUE;
    else return FALSE;
    }

    per c6 (non l'h testata, fammi sapere):
    function is_c6($C6) {
    if(eregi("^[^\.\-\_][a-z\.\-\_][0-9]{,4}[^\.\-\_]$", $C6)) return TRUE;
    else return FALSE;
    }

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    96
    scusa aicos, per il c6 ho voluto fare lo "sborone" e ho tirato un'emerita cavolata!
    ci sto studiando su quella stringa perché non è banale...

  7. #7
    giohappy, le tue regexp sono decisamente poco ottimizzate, la metà di ognuna potrebbe essere levata... perchè ad esempio metti a-zA-Z se poi usi una ricerca case-insensitive? e a cosa servono tutte quelle parentesi tonde che rallentano?

    io ne ho già di fatte, appena riesco le posto.

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    96
    ben vengano soluzioni migliori!
    io ho provato con quello che sapevo di regex, e sono quelle che a volte uso, ma non sono certo un guru. tan'è che ho messo un thread proprio per risolvere un problema che ho con queste benedette/maledette espressioni!
    forum.html.it/forum/showthread.php?s=&threadid=719280
    facci sapere :-)

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    96
    questo è il thread che avevo postato:
    ho un problema con una regex un po' spigolosa:
    devo validare una stringa che sia composta da massimo 15 caratteri, contenenti al massimo 3 cifre, e che non inizi né termini con un "_" o "-".
    il mio problema sta nelle 3 cifre... che possono essere in qualunque posizione, anche a inizio stringa.
    aiuto!!!

    mi puoi dare un'idea?

  10. #10
    icq
    #[0-9]{6,12}#i

    aim
    #[a-z]{1}[[:alnum:]]{2,15}#i

    yahoo
    #[[:alnum:]]{1,32}#i

    msn
    #(?:[-.]?[0-9_a-z])(?:[-.]?[0-9_a-z])*@(?:msn|hotmail)\\.[a-z]{2,4}#

    -----

    per controllare un numero max di numeri si potrebbe usare il pattern condizionale, ma diventa una cosa enorme.
    dovrei documentarmi...

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.