2011-11-25 24 views
9

/(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,8}/componente de expresiones regulares contraseña componente (javascript)

Este RegEx se supone para validar una contraseña, que debe contener al menos un dígito, tanto en minúsculas y mayúsculas. ¿Alguien puede explicar este RegEx por componentes más pequeños?

+4

hacer preguntas acerca de las expresiones regulares, no se trata de _your_ expresión regular. –

+2

@LightnessRacesinOrbit para ser justo, es solo un ejemplo. Como la mayoría de los ejemplos, se supone que el conocimiento es aplicable a otros escenarios. –

Respuesta

11
/(?=.\d)(?=.[a-z])(?=.*[A-Z]).{6,8}/ 

Esta expresión regular se utiliza generalmente para validar la contraseña, es decir

contraseña debe contener 1 UpperCase, 1 LowerCase y 1 numeric y no special characters.

(?=.*\d) //at least 1 numeric charater. 

(?=.*[a-z]) //atleast 1 lowercase. 

(?=.*[A-Z]) //atleast 1 uppercase. 

.{6,8} //string is of 6 to 8 length. 

Espero que esto ayude.

8

(?=.*\d) asegura que su cadena tenga un dígito en ella.

(?=.*[a-z]) asegura que su cadena tenga una letra ASCII en minúscula.

(?=.*[A-Z]) asegura que su cadena tenga una letra ASCII en mayúscula.

.{6,8} coincide con una cadena de al menos 6 y atmost 8 caracteres.

Como faltan los anclajes, la expresión regular correspondería a cualquier cadena que tenga como subcadena una cadena que satisfaga todas las 4 condiciones anteriores.

+1

(y, por supuesto, una vez más, son solo letras y dígitos ASCII. Además, sin anclajes, las cadenas que tienen más de 8 caracteres también coincidirán (parcialmente)) ... –

+0

@Tim: Corregir ... – codaddict

+1

+1 y eliminar el mío, porque escribiste más rápido. – stema

6

(?=..) significa: Deje que la cadena después de la posición actual contenga ...

(?=.*\d) # Somewhere, at least one digit should appear 
(?=.*[a-z]) #   and at least a lowercase letter 
(?=.*[A-Z]) #   and at least an uppercase letter 
.{6,8}  #   must consist of 6-8 characters 

A su patrón le faltan los marcadores para el principio y el final de una cadena. Añadir ^ y $:

/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,8}$/ 
2

La expresión regular es ambigua. No debe usar la combinación de caracteres ". *". El período significa cualquier carácter y el asterisco de 0 o más ocurrencias, que es probable que sea la totalidad de su cadena.

3

mirada a diferentes partes,

(?=.*\d) contraseña debe tener al menos 6 caracteres, y un máximo de 8 letras ..

^(?=.*\d) contiene un número,

(?=.*[a-z]) un pequeño alfabeto y

(?=.*[A-Z]) una letra mayúscula ..

Se puede utilizar como esto

^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{lower_limit, upper_limit}$ 

durante al menos una letra minúscula, una letra mayúscula y un número con cualquier restricción de longitud (inferior, superior)

3
?= is look ahead for the following feature within brackets() 
then (?=.*\d) 0 or more of any character that is a decimal 0-9 
then (?=.*[a-z]) after that look ahead for 0 or more a-z characters 
then (?=.*[A-Z]) after that look ahead for 0 or more A-Z uppercase characters 
.{6,8}/ and then must be 6-8 character long 

sin el principio^o termina $ que coincidirá con cualquier cadena de 6-8 caracteres que coincidan con las reglas anteriores.

si cambia el * + a continuación, que coincidirá con 1 o más caracteres

Cuestiones relacionadas