2011-02-10 14 views
6

Obecny używam następujące RegEx dla użytkownika, aby wprowadzić hasłoJak zezwolić na jakąkolwiek postać w RegEx?

^\w{8,16}$ 

Teraz rozumiem, \ w pozwala tylko-z, A-Z, 0-9 oraz _ znaków. Chcę tylko DOWOLNEJ postaci, ale długość musi wynosić od 8 do 16. Jak mogę to zrobić? Thanx z dużym wyprzedzeniem :)

+4

Dlaczego musisz używać wyrażeń regularnych? Jestem pewien, że w każdym języku, którego używasz, istnieje funkcja zliczania, która zliczy długość twojego napisu. – Joe

+1

Masz absolutną rację Joe! Tak naprawdę wymagałbym RegEx tylko wtedy, gdy istnieje sytuacja, w której pewne znaki NIE powinny być w haśle itp. Poprawne? –

+0

'\ w' wont match' _' AFAIK – leppie

Odpowiedz

9

Najpierw użyj liczby słów, aby uzyskać to, czego potrzebujesz, a nie wyrażenie regularne.

Jeśli naprawdę musisz, to .{8,16} powinien zadziałać, . pasuje do jednego znaku, niezależnie od tego, co to jest.

EDIT: Aby uprzedzić następne pytanie, które na pewno będzie, co to jest dobra walidacja hasło wyrażenie regularne, może chcesz sprawdzić niektóre z tych blogów:

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/

lub po prostu spojrzeć w górę 'stackoverflow walidacji hasło' na google

6

Spróbuj:

^.{8,16}$ 

Kropka pasuje do pojedynczego znaku, nie dbając o to, kim jest ta postać. Jedynym wyjątkiem są znaki nowej linii. Domyślnie kropka nie pasuje do znaku nowego wiersza. Aby uzyskać szczegółowe informacje, odwiedź: http://www.regular-expressions.info/dot.html.

Powiązane problemy