Regex for password atleast have one Capital , one number minimum 7 and maximum 15 characters

StackOverflow https://stackoverflow.com/questions/14935763

Вопрос

I am using struts 2 annotation validation to validate the password field but it shows error whwn i give the correct one my coding is

@RequiredStringValidator(message = "Please provide a password")
    @StringLengthFieldValidator(minLength="7",maxLength="15",message="The Password should be minmum 7 character and maximum 15 charcters")
    @RegexFieldValidator(expression = "^[0-9A-Z]+$", message = "Password atleast have one Capital and one Number")

any idea?

Это было полезно?

Решение 2

The regex you are looking for is :

^(.*[0-9].*[A-Z].*)|(.*[A-Z].*[0-9].*)$

The one you provided:

^[0-9A-Z]+$

matches a password composed only of numbers and/or capitals

Другие советы

I think he really needs (untested): ^.*(?=.{7,15})(?=.*\d)(?=.*[a-zA-Z]).*$

But I wouldn't use a regex... just add a validate method to your action and check it there against your requirements, a simple loop and counter would be a lot easier for most people to understand than your regex which you yourself find difficult to construct and will later find difficult to read.

For instance what if you wanted to change that monstrosity above? If I see a loop over the characters of a string with a counter for numbers and letters that would be very easy to understand and pretty thoughtless to factor that to add uppercase letters, lower case letters and symbols should you choose.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top