Visualizzazione dei risultati da 1 a 8 su 8

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    88

    Espressione regolare che accetta solo una stringa alfanumerica ma non deve accettare solo numeri

    Attualmente utilizzo questo ->
    codice:
     $regex = '/^[A-Za-z0-9-]{0,63}$/';
    Accetta una stringa alfanumerica, fin qui va bene, ma non deve inserire solo numeri.

    esempio, username:

    pippo1990 ok
    Caiocaio ok
    tizio90Tizio ok

    1234 -> deve darmi errore, invece con quello che ho scritto, me lo accetta.

    consigli?
    Ultima modifica di feys88; 15-10-2014 a 11:39

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,509
    Anche 1ciccio è accettabile? Oppure non può iniziare con un numero?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    88
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Anche 1ciccio è accettabile? Oppure non può iniziare con un numero?
    Essendo un username non penso, in generale la stringa può essere alfanumerica, ma non può contere solo numeri.

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,509
    Beh, "non penso" non è sufficiente, qui sul forum ci sono persone che per username ne hanno uno che inizia per numero.

    Se tu NON VUOI che lo facciano ok, ma se ti affidi alla speranza che non lo facciano è diverso.
    Tu cosa vuoi fare? Li vuoi permettere o no gli username che iniziano con un numero?

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    88
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Beh, "non penso" non è sufficiente, qui sul forum ci sono persone che per username ne hanno uno che inizia per numero.

    Se tu NON VUOI che lo facciano ok, ma se ti affidi alla speranza che non lo facciano è diverso.
    Tu cosa vuoi fare? Li vuoi permettere o no gli username che iniziano con un numero?
    Non sapevo che un username potesse iniziare con un numero, ad ogni modo vorrei evitare di dare la possibilità di registrarsi con un un username che inizia con un numero.
    Quindi solo stringa alfanumerica. ok
    stringa alfanumerica che inizia con un numero seguito da caratteri alfabetici (errore)
    stringa con solo numeri (errore)

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,509
    $regex = '/^[A-Za-z]{1}[A-Za-z0-9-]{0,62}$/';

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    88
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    $regex = '/^[A-Za-z]{1}[A-Za-z0-9-]{0,62}$/';
    Grazie!

  8. #8
    "Penso" sia più indicato usare
    codice:
    $regex = '/^[A-Za-z]{1}[_A-Za-z0-9\-]{0,62}$/';
    ('\-' al posto '-' perché è un carattere speciale; aggiunto '_' perché negli username è molto usato.)

    PS: Se ti dovesse ricapitare il problema iniziale, io userei questa regex
    codice:
    $regex = '/^[_A-Za-z0-9\-]*[A-Za-z][_A-Za-z0-9\-]*$/';
    e poi farei strlen($username) < 64 a parte (tanto è raro che uno username sia così lungo).

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 © 2026 vBulletin Solutions, Inc. All rights reserved.