开发者

Strong password regular expression that matches any special char

I need the following check for strong password validation:

  • At least 7 chars
  • At least 1 uppercase char (A-Z)
  • At least 1 number (0-9)
  • At least one special char

I found and tweaked a RegEx and it's like this (sorry, I lost the reference...):

^.*(?=.{7,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@'#.$;%^&+=!""()*,-/:<>?]).*$

It's working in C# except for the fact that I 开发者_高级运维need to match any special char, and I really mean ANY. In other words, I need that the "special char" be anything but numbers and lower/uppercase letters.

Edit:

For the sake of clarity, let's consider that accents are special chars, so é, ñ and the like should be considered special chars in the context of this question.


^.*(?=.{7,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9]).*$


(Not C# code)

def validate (value):
    return (value.Length >= 7 &&
            value.IndexOfAny(['0', ..., '9']) >= 0 &&
            value.IndexOfAny(['A', ..., 'Z']) >= 0 &&
            value.IndexOfAny(['@', ..., ')']));

Yes I know this is not what the question required, but I believe it's much clearer, have higher performance and easier to maintain than any RegExp solution.


I believe that :-

\w

Matches any word character.

The inverse is :-

\W

Which is what you want.

Edit

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

Test your regular expressions at :-

http://www.nregex.com/nregex/default.aspx


Take a look here: Unicode Regular Expressions and pick an Unicode class, like \p{Symbol} or \p{Punctuation}


Try this:

^(?=.{7,})(?=.*?\d)(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[@'#.$;%^&+=!"()*,-/:<>?])


Regex Rx = null;
            Rx = new System.Text.RegularExpressions.Regex("^(?=.*?[A-Za-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{7,}$");


            if (Rx.IsMatch(textBox3.Text))
            {
                textBox3.BackColor = Color.Green;
                textBox3.ForeColor = Color.White;
                MessageBox.Show("Password is (correct) format ");
            }
            else
            {
                textBox3.BackColor = Color.DarkRed;
                textBox3.ForeColor = Color.White;
                MessageBox.Show("Contact is (in-correct) format");

            }  
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜