2009-06-09 30 views
7

Ho un problema in cui è necessario utilizzare un RegularExpressionValidator per limitare la lunghezza di una stringa a 400 caratteri.Espressione regolare per limitare la lunghezza della stringa

La mia espressione era .{0,400}

La mia domanda: C'è un modo per limitare la lunghezza dei caratteri a 400 senza prendere in considerazione spazi vuoti?

Desidero poter accettare spazi vuoti nella stringa ma non contarli nella lunghezza. È possibile?

+0

Questo non è strettamente possibile con un'espressione regolare ma è in molte lingue. In quale lingua stai tentando di implementare questo? – Copas

+0

Sto usando il controllo RegularExpressionValidator in un'applicazione web asp.net (vb.net). – Boopid

risposta

11

Ho praticamente d'accordo con Greg, ma ecco il regex che si desidera:

^\s*([^\s]\s*){0,400}$ 

@Boopid: Se davvero voleva dire solo il carattere di spazio, sostituire \ s con uno spazio nel regex.

+0

Non dovrebbe essere [^ \ s] invece di [^]? A parte questo: bello! – Stephan202

+0

(o l'interrogante per "spazi vuoti" in realtà significa solo il carattere dello spazio?) – Stephan202

+2

O semplicemente \ S invece di [^ \ s] –

7

Sembra che si desideri scrivere la propria classe di convalida anziché utilizzare RegularExpressionValidator. Le espressioni regolari hanno certamente i loro usi, ma questo non sembra uno di loro.

Il tuo validatore personalizzato può rimuovere tutti gli spazi, quindi controllare la lunghezza della stringa. In definitiva, il codice sarà più leggibile di un'espressione regolare che fa la stessa cosa.

+0

Sono d'accordo, basta rimuovere tutti gli spazi bianchi e controllare la lunghezza della stringa. Probabilmente molto efficiente rispetto alla regex suggerita sopra (anche se questa è solo una teoria). –

Problemi correlati