Sticky Password Strength Expression

  • 2010年2月9日 下午 07:43
     
     
    It's been a while since I've had to use regular expressions.

    Can someone explain this to me in layman's terms?

    ^(?=.{8,30})(?=.*[^A-Za-z])(?=.*[A-Z])(?=.*[a-z]).*

所有回覆

  • 2010年2月9日 下午 08:14
     
     已答覆
    These are all assertions...

    ^ = starting from the beginning of the string...
    (?=.{8,30}) = there is a string that is at least 8 characters long... (the upper bound of 30 cannot work this way)
    (?=.*[^A-Za-z]) = somewhere in the string, there is at least one non-alphabetic character...
    (?=.*[A-Z]) = somewhere in the string, there is at least one uppercase character...
    (?=.*[a-z]) = somewhere in the string, there is at least one lowercase character....

    .* match anyting, provided that all the above conditions are met.

    HTH
    --mc
    • 已標示為解答 LarryEis 2010年2月9日 下午 08:16
    •  
  • 2010年2月9日 下午 08:17
     
     
    Thanks.
  • 2010年2月9日 下午 09:26
    版主
     
     提議的解答

    (?=.{8,30}) = there is a string that is at least 8 characters long... (the upper bound of 30 cannot work this way)

    Mario has a point...the above fails. To enforce the thirty character limit change the pattern to this:

    ^(?!.{31})(?=.{8})(?=.*[^A-Za-z])(?=.*[A-Z])(?=.*[a-z]).*$


    (?!.{31})  - Match invalidator, if it finds 31 characters it invalidates the match. Nothing returned
    $ - END of line

     

    To add to Mario's, correct, statement

    .* Match anything, zero or more times.

     

     


    William Wegerson (www.OmegaCoder.Com )
    • 已提議為解答 _Jazz 2011年2月22日 下午 07:08
    •  
  • 2011年2月22日 下午 07:10
     
     
    This pattern surely limits 30 chars and also accepts one or more numeral, small case and upper case alphabets.
    Regards, Rule the Codes and Code New Rules
  • 2011年3月4日 上午 04:29
     
     
    great stub !!
    Vedigoundan Gurunathan
  • 2011年4月13日 下午 01:39
     
     
    Very good !
  • 2011年4月25日 上午 07:52
     
     提議的解答

    Hi LarryEis,

    Use the below expression,

    ^(?!.{31})(?=.{8})(?=.*[^A-Za-z])(?=.*[A-Z])(?=.*[a-z]).*$


    ^  = starting from the beginning of the string
    (?=.{8,31}) = there is a string that is at least 8 characters long... (the upper bound of 31)
    (?=.*[^A-Za-z]) = somewhere in the string, there is at least one non-alphabetic character
    (?=.*[A-Z]) = somewhere in the string, there is at least one uppercase character
    (?=.*[a-z]) = somewhere in the string, there is at least one lowercase character

    Thanks

    Roozan Bharucha

    MCT, MCPD Windows Frmwk 4.0

    • 已提議為解答 Rex Honour 2011年4月25日 上午 09:34
    •  
  • 2011年4月29日 上午 10:13
     
     提議的解答

    This regex can also be helpful:

    {8,15}$)(?=.*\d)((?=.*\W+)|(?=.*[A-Z]))(?![.\n]).*$

     

    This is according to the standards which asks for minimum 8 to maximum 15 characters

    One mandatory UpperCase Alphabet,

    One mandatory LowerCase Alphabet,

    One mandatory Number.

  • 2011年5月23日 上午 07:21
     
     

    Yes , I agree with this ?= is the condition if the case is this then whats the result

    \ is the escape case

    [A-Z] any character between A -Z

    * any case i.e small or capital letters

    8-15 strength of the letter

  • 2011年6月18日 下午 05:34
     
     

    Assert a string is 8 or more characters:
    (?=.{8,})

    Assert a string contains at least 1 lowercase letter (zero or more characters followed by a lowercase character):
    (?=.*[a-z])

    Assert a string contains at least 1 uppercase letter (zero or more characters followed by an uppercase character):
    (?=.*[A-Z])

    Assert a string contains at least 1 digit:
    (?=.*[\d])

    Assert a string contains at least 1 special character:
    (?=.*[\W])

    Assert a string contains at least 1 special character or a digit:
    (?=.*[\d\W])

    • 已提議為解答 Mustee01 2011年7月4日 下午 08:08
    • 已取消提議為解答 Mustee01 2011年7月4日 下午 08:09
    •  
  • 2012年2月7日 上午 09:00
     
     
    Regular expressions are one of those things where you have to keep in practise as it could become quite complicated.. But if you don't use it for a while and suddenly jump into it again, it all comes back..
  • 2012年2月13日 上午 05:36
     
     

    Please visit following link:

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

  • 2012年2月14日 下午 05:10
     
     

    I need one for

    Minimum of 8 (eight) characters and at least 1 non-alphanumeric characters.

    Is it right?

    ^(?=.{8,})(?=.*[^A-Za-z])*

  • 2012年5月23日 上午 10:00
     
     提議的解答

    Refer Following urls

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

    http://www.techpint.com/programming/regular-expression-check-password-strength


    Gehan Fernando Snr. Engineer Technology. AKLO Information Technologies (Pvt) Ltd. #58, 42nd Lane, 5th Floor, Wellawatta, Colombo 06, Sri Lanka. Phone: +94 117 520000 | Mobile: +94 772 269625

    • 已提議為解答 ardmore 2012年5月23日 下午 12:46
    •