2

处理一个需要我使用模式属性的密码字段的项目。没有真正做很多正则表达式的东西,想知道是否有人可以帮忙。

字段要求如下:

  • 不能包含“密码”一词
  • 长度必须为 8-12
  • 必须有 1 个大写字母
  • 必须有 1 个小写字母
  • 必须有 1 位数字

现在,到目前为止,我有以下内容:

[^(password)].(?=.*[0-9])?=.*[a-zA-Z]).{8,12}

这行不通。除了匹配的密码字符串外,我们可以得到它,以便其他一切工作。

在此先感谢,安迪

编辑:我们现在使用的方法(嵌套在下面的评论中)是: ^(?!.*(P|p)(A|a)(S|s)(S|s)(W|w)(O|o)(R|r)(D|d)).(?=.*\d)(?=.*[a-zA-Z]).{8,12}$

谢谢您的帮助

4

4 回答 4

2

对“必须包含”标准使用一系列锚定前瞻:

^(?!.*(?i)password)(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,12}$

我已将“忽略大小写”开关添加(?i)到“密码”要求中,因此无论字母大小写如何,它都会拒绝该单词。

于 2013-10-25T09:48:21.297 回答
1

这个正则表达式应该适用于工作:

^(?!.*password)(?=.*\d)(?=.*[A-Z])(?=.*[a-z]).{8,12}$

它将匹配:

^               // from the beginning of the input 
(?!.*password)  // negative lookbehind whether the text contains password
(?=.*\d+)       // positive lookahead for at least one digit
(?=.*[A-Z]+)    // positive lookahead for at least one uppercase letter
(?=.*[a-z]+)    // positive lookahead for at least one lowercase letter
.{8,12}         // length of the input is between 8 and 12 characters
$

链接到phpliveregex

于 2013-10-25T09:49:17.297 回答
0

试试这个方法

        Public void validation()
        string xxxx = "Aa1qqqqqq";
        if (xxxx.ToUpper().Contains("password") || !(xxxx.Length <= 12 & xxxx.Length >= 8) || !IsMatch(xxxx, "(?=.*[A-Z])") || !IsMatch(xxxx, "(?=.*[a-z])") || !IsMatch(xxxx, "(?=.*[0-9])"))
        {
             throw new System.ArgumentException("Your error message here", "Password");
        }
        }

        public bool IsMatch(string input, string pattern)
        {
          Match xx = Regex.Match(input, pattern);
          return xx.Success;
         }
于 2013-10-25T10:08:00.207 回答
0

尝试这个:

^(?!.*password)(?=.*[A-Z])(?=.*[0-9])(?=.*[a-z]).{8,12}$

解释

^                         Start anchor
(?=.*[A-Z])               Ensure string has one uppercase letter
(?=.*[0-9])               Ensure string has one digits.
(?=.*[a-z])               Ensure string has one lowercase letter
{8,12}                    Ensure string is of length 8 - 12.
(?!.*password)            Not of word password
$                         End anchor.
于 2013-10-25T09:45:59.263 回答