2011-05-23 121 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)); 
       } 
      } 
     } 
    }