2011-02-10 32 views
6

actual que utilice la siguiente expresión regular para que el usuario introduzca una contraseña¿Cómo se permite cualquier carácter en RegEx?

^\w{8,16}$ 

Ahora lo que tengo entendido, \ w sólo permite a-z, A-Z, 0-9 y _ carácter. Lo que quiero hacer es permitir CUALQUIER personaje, pero la duración debe estar entre 8 y 16. ¿Cómo puedo hacerlo? Gracias mucho por adelantado :)

+4

¿Por qué necesita usar regex? Estoy seguro de que en cualquier idioma que uses hay una función de conteo de caracteres que contará la longitud de tu cadena. – Joe

+1

¡Tienes toda la razón, Joe! Entonces, ¿realmente necesitaría RegEx solo si hay una situación en la que ciertos caracteres NO deberían estar en la contraseña, etc. correcta? –

+0

'\ w' no coincidirá con' _' AFAIK – leppie

Respuesta

9

En primer lugar, utilice un conteo de palabras para lo que necesita en lugar de regex.

Si realmente debe, entonces .{8,16} debería funcionar, el . coincide con un único carácter, sin importar de qué se trate.

EDIT: para adelantarse a su siguiente pregunta que seguramente será, lo que es una expresión regular buena validación de la contraseña, es posible que desee echa un vistazo a algunos de estos blogs:

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/

O simplemente busque la 'validación de la contraseña stackoverflow' en google

6

Pruebe esto:

^.{8,16}$ 

El punto coincide con un solo carácter, sin importar el carácter. La única excepción son los caracteres de nueva línea. Por defecto, el punto no coincidirá con un carácter de nueva línea.

Para los detalles, por favor visite: http://www.regular-expressions.info/dot.html.

Cuestiones relacionadas