2011-02-10 16 views
6

corrente Io uso la seguente espressione regolare per l'utente di inserire una passwordCome consentire qualsiasi carattere in RegEx?

^\w{8,16}$ 

Ora mi pare di capire, \ w solo permette a-z, A-Z, 0-9 e _ carattere. Quello che voglio fare è permettere a QUALSIASI carattere, ma la lunghezza tra 8 e 16. Come faccio a farlo? Grazie mille in anticipo :)

+4

Perché è necessario utilizzare regex? Sono sicuro che in qualunque lingua tu stia usando c'è una funzione di conteggio dei caratteri che conterrà la lunghezza della tua stringa. – Joe

+1

Hai perfettamente ragione Joe! Quindi, in realtà, richiederei RegEx solo se esiste una situazione in cui alcuni caratteri NON devono essere nella password, ecc. –

+0

'\ w' non corrisponde' _' AFAIK – leppie

risposta

9

In primo luogo, utilizzare un conteggio delle parole per ciò che è necessario, piuttosto che regex.

Se davvero si deve, quindi .{8,16} dovrebbe funzionare, lo . corrisponde a un singolo carattere, non importa quale sia.

EDIT: per prevenire la prossima domanda che sarà sicuramente, quello che è un buon convalida della password espressioni regolari, si potrebbe desiderare di controllare alcuni di questi blog:

http://nilangshah.wordpress.com/2007/06/26/password-validation-via-regular-expression/

http://www.zorched.net/2009/05/08/password-strength-validation-with-regular-expressions/

OPPURE cerca "stackoverflow di convalida password" su google

6

Prova questo:

^.{8,16}$ 

Il punto corrisponde a un singolo carattere, senza preoccuparsi di quello che è quel personaggio. L'unica eccezione sono i caratteri di nuova riga. Per impostazione predefinita, il punto non corrisponderà a un carattere di nuova riga.

Per i dettagli, visitare: http://www.regular-expressions.info/dot.html.

Problemi correlati