2011-07-14 64 views
-3

我需要幫助創建密碼正則表達式。 密碼必須包含至少4個字符,字母(大寫和小寫),數字和特殊字符 - 無空格。密碼的正則表達式

msn喜歡正則表達式。

+2

有你試過什麼? –

+2

定義*特殊字符*。同時告訴我們你正在使用什麼正則表達式引擎。 –

+0

嘿即時嘗試提交表單,但首先測試與jquery的有效輸入,然後解析到PHP也測試那裏。 所以我想要一個包含字母大寫或小寫字母的密碼,至少需要4個字符長的數字和特殊字符! @#$%^ & *();,。+ - – vegeta

回答

-1

嘗試

^.*(?=.{4,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]).*$ 
+2

刪除第一個'。*'和最後一個'。* $'(至少添加'。,!?:; */- '到特殊字符)。 – Qtax

+0

將無法​​工作 - 它允許空格 – Bohemian

0

此正則表達式的工作 - 看測試數據及以下的輸出:在password.txt的

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

測試數據(僅首先應通過):

aB#1 
aB #1 
ab#1 
AB#1 
aB#a 
aB1a 
aB1 

mac-osx> grep -P '^(?=.{4,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*)(?=.*[@#$%^&+=i.,!?:;*/])' passwords.txt 
aB#1 

您可以將任何額外的「特殊字符」添加到上一次查看正則表達式的字符類中。

0

使用此:

(?=.*?[a-z])(?=.*?[A-Z])(?=.*?\d)(?=.*?[#&*%])^\S*$ 

如果字母可以是任何Unicode字母,你可以用這個表達式:

(?=.*?\p{Ll})(?=.*?\p{Lu})(?=.*?\d)(?=.*?[#&*%])^\S*$ 

要添加特殊字符,簡單地把它們裏面[]