2011-06-07 38 views
1

我需要兩個正則表達式(ASP.NET MVC 2應用程序)的幫助。這正是我需要的:需要用戶名和密碼的正則表達式

用戶名:

  • 必須包含至少一個字母;數字是允許的,但不是必需的
  • 不能包含空格
  • 沒有允許使用特殊字符,如[email protected]#$%^&
  • 下劃線和「」 (點)被允許
  • 不能以空格開始或下劃線

密碼:

  • 必須包含至少一個字母和一個數字
  • 不能包含空格
  • 是大小寫敏感的

我試過[a-zA-Z0-9] + [\ w。] [A-ZA-Z] + [\ W]用戶名,但它失敗爲 「A123456」

+3

你有沒有試圖讓他們 - 你有什麼? – Tim 2011-06-07 06:48:40

+2

*「密碼不能包含空格」* - 爲什麼? – Tomalak 2011-06-07 06:49:51

+0

我不想讓「pass word」成爲通行證。沒有空格.. – Cemsha 2011-06-07 06:51:32

回答

3

正則表達式的用戶名:

^[a-zA-Z]\w+|[0-9][0-9_]*[a-zA-Z]+\w*$ 

另一個正則表達式的用戶名,向前看使用..

^(?=.*[a-zA-Z].*)[a-zA-Z0-9]\w*$ 

保羅的正則表達式的密碼是好的,但你應該把^到開始時和$對正則表達式的結尾來指定起點,也捕捉結束..

UPDATE:

中指出,用戶名可以包含點字符也。我修改了正則表達式,但我認爲用戶名不能啓動點字符也。這裏是修改後的正則表達式;

^([a-zA-Z][\w.]+|[0-9][0-9_.]*[a-zA-Z]+[\w.]*)$ 
+0

對於用戶名「1_aaaaaa」,第一個正則表達式不起作用,但第二個正常,現在...仍在測試... – Cemsha 2011-06-07 10:05:32

+0

@Mishko,檢查http://regexr.com?2tudm。它也適用於這種情況。 – 2011-06-07 10:10:23

1

由於Gursel,這個正則表達式應該

([a-zA-Z\d]+[\w\d]*|)[a-zA-Z]+[\w\d.]* 

Regexr here

這對於密碼:輸入用戶名辦

([a-zA-Z]+[\d]+|[\d]+[a-zA-Z]+)[^\s]* 

Regexr here)。

+0

正則表達式用戶名無效,它可以接受沒有字母的用戶名。 – 2011-06-07 08:09:44

+0

對於用戶名「1_aaaaaa」,正則表達式不起作用。 – Cemsha 2011-06-07 10:02:47