[regex] validare un textbox con solo caratteri alfabetici.

MarcoGrazia

Utente Attivo
15 Dic 2009
852
20
28
63
Udine
www.stilisticamente.com
Dovrei validare una textbox in modo che al suo interno ci siano solo caratteri alfabetici ( minimo 2 ) e spazi, null'altro.
Ho costruito una regex ma non mi pare vada un granché, anzi non va affatto.
Praticamente:
  • quando valido la textbox vuota, non passa ( giusto )
  • quando valido con un solo carattere, non passa ( giusto )
  • quando valido uno o due numeri iniziali non passa ( giusto )
  • quando valido con due spazi iniziali non passa ( giusto )
  • quando valido "marc0", passa ( errato )
  • quando valido "marco grazia", passa ( errato )
In pratica fa quasi il contrario di quanto dovrebbe fare, magari fosse il contrario, semplicemente fa come gli pare :D almeno apparentemente.
Ecco la regex: /^[a-zA-Zàèéìòù]{2,256} */g in pratica tutti i caratteri alfabetici compresi: spazio e accentate, ma non altri caratteri, compresi i numeri; il tutto ripetuto da 2 a 256 volte.
Il test avviene al solito con
Codice:
regex.test( value )
dove value è la stringa passata dalla textbox e regex è la regex si cui prima.
Codice:
value = $( '#nome' ).val();
Uso jquery dato che tutta la pagina lo usa.
 
innanzi tutto una domanda: perché marco grazia non dovrebbe passare? contiene solo caratteri e uno spazio.

comunque se dopo il * aggiungi $ non passa né marc0 né marco grazia, invece passa marcograzia
 
innanzi tutto una domanda: perché marco grazia non dovrebbe passare? contiene solo caratteri e uno spazio.
E no marco grazia DEVE passare è che attualmente secondo la regex che ho scritto non va, è ovviamente sbagliata, ma siccome io e le regex siamo due persone separate e distinte, non riesco a comprenderne il motivo.
comunque se dopo il * aggiungi $ non passa né marc0 né marco grazia, invece passa marcograzia
come sopra, lo spazio deve essere accettato dato che è il campo nome e non quello di un nickname, e lo spazio ci deve stare, anzi, secondo me dovrei riuscire a metterlo obbligatorio in modo da forzare chi scrive a inserire sia il nome che il cognome, quindi lo spazio dovrbbe apparire almeno una volta in modo da permettere anche i nomi con più cognomi o nomi. Marco Aurelio Severo Alessandro, tanto per citare :D
 
giusto, questo perché la prima e l'ultima parentesi quadra prendono il primo e l'ultimo carattere ergo due caratteri sono presi di default quindi dovresti modificare i numeri fra le graffe tenendo conto che 2 caratteri sono sempre presi
 
Per funzionare funziona e ti ringrazio, però sto anche provando il plugin validate di jquery, funziona ma ovviamente sto avendo problemi con lo stesso problema, cioè le date, perché devo raggruppare tre lementi ( giorno, mese e anno ) in uno solo.
Su stackoverflow ho trovato qualche cosa, lo sto seguendo poi posto qui il codice così magari a qualcuno interessa.
Poi a casa se ho tempo do un'occhiata in giro per vedere come hanno fatto gli altri, ad esempio facebook :D
 

Discussioni simili