2011-05-23 125 views
0

我需要一个正则表达式,它要求密码至少包含8个字符和一个数字。正则表达式帮助

另外,有没有一个网站,允许我自动生成正则表达式?

+1

有涉及这个话题这么多问题,例如[见问题/ 3489693 /正则表达式的密码](http://stackoverflow.com/questions/3489693/regular-expression-for-password) – stema 2011-05-23 09:31:54

+0

谢谢stema..your答案提供了一个解决方案 – 2011-05-23 11:17:08

回答

-1

尝试

[\w]{8,} 

这包括AZ 0-9和_

,如果你不想在_,你可以做[A-ZA-Z0-9]

一个网站生成reg expr?不,但有一个reg表达工作室让你测试你的表情并显示结果。

http://regexpstudio.com/RegExpStudio.html

+0

这将允许数字,但不需要一个数字 – stema 2011-05-23 09:26:15

+0

上面的表达式..不防止从vs2010 throw regularExpr会话错误 – 2011-05-23 09:39:26

+0

感谢您给我打了个招呼,当时您没有为其他人做同样的事情!至少我费了很大力气来回答这个问题的两个部分。 – BugFinder 2011-05-23 12:02:37

2

我建议你使用正则表达式2个验证:

\d 

.{8,} 

更可以理解的。

+1

这是一个不错的解决方案。它只是说你至少需要8个字符。而“\ d”只是说我想要一个或多个数字。 – 2011-05-23 09:27:03

0

如果“8个字符和数字”中的字符表示“非数字字符”,那么我不会使用正则表达式来验证这一点。用一个正则表达式来执行它太复杂了。

更容易只是为了检查每个字符和递增两个变量(非数字chars'c”,一个用于数字‘d’中的一个),并检查在最后的值:

d> = 1 & & c> = 1 & & d + c> = 8 < - 好密码

后来编辑:我刚刚看到了正则表达式的解决方案。虽然这一个工作我仍然认为,这一问题只能与一个穿越来解决,没有超前

1

此检查在密码字符串中的数字

^(?=.*\d+)[\w]{8,}$ 
1
using System; 
using System.Text; 
using System.Text.RegularExpressions; 
namespace TestConsoleAppCSharp 
{ 



     class Program 
     { 
      static void Main(string[] args) 
      { 
       string[] passwords = {"test123", "testtest", "testtest123"}; 
       foreach (string pw in passwords) 
       { 
        Console.WriteLine(Regex.IsMatch(pw, @"^.*(?=.{8,})(?=.*\d)") ? String.Format("{0}: Yepp", pw) : String.Format("{0}: Nope", pw)); 
       } 
      } 
     } 
    }