2010-03-06 16 views
8

के लिए मैं निम्नलिखित पासवर्ड आवश्यकताओं:रेगुलर एक्सप्रेशन से सशक्त पासवर्ड

1) 2) कम से कम एक लोअरकेस वर्ण
3 होना चाहिए लंबाई
में 6-15 अक्षर) कम से कम एक अपरकेस चरित्र होना चाहिए होना चाहिए
4) कम से कम एक संख्या
5) कम से कम एक विशेष वर्ण
6) रिक्त स्थान

किसी को भी मुझे इस आवश्यकता के लिए एक रेगुलर एक्सप्रेशन से बता सकते हैं नहीं चाहिए होना चाहिए होना चाहिए?

+4

एक की लंबाई सीमित पासवर्ड शायद ही कभी एक अच्छा विचार है – TomHastjarjanto

+0

इसे रेगेक्स क्यों होना चाहिए? यह सामान्य कोड के रूप में और अधिक पठनीय होगा। –

+0

मार्क - वह शायद एक reg-ex की तलाश में है, इसलिए इसे एएसपीनेट सत्यापनकर्ता नियंत्रण में क्लाइंट और सर्वर पक्ष का उपयोग किया जा सकता है। – bkaid

उत्तर

8

मैं पूरी तरह सुनिश्चित करें कि आप "विशेष वर्ण" द्वारा क्या मतलब है तो मैं इस की व्याख्या कर रहा हूँ \W मतलब करने के लिए नहीं कर रहा हूँ, लेकिन आप इसे बदल सकते हैं अगर आप चाहते हैं:

^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*\W)\S{6,15}$ 
+4

+1 के लिए +1, लेकिन बग से सावधान रहें: http://blog.stevenlevithan.com/archives/regex-lookahead-bug –

+0

+1 एलन। दस्तावेजी बग के बारे में जानना हमेशा अच्छा होता है! –

11

सुनिश्चित नहीं हैं कि मैं के लिए है कि एक Regex का प्रयोग करेंगे: हमेशा काम के किसी भी संभावित प्रकार के लिए सही उपकरण ...

यहाँ, आप 6 आवश्यकताओं की एक सूची निर्दिष्ट नहीं हैं regex; तो, क्यों न सिर्फ 6 अलग-अलग परीक्षणों का उपयोग करें, प्रति आवश्यकता एक?
उन 6 अलग-अलग परीक्षणों को, मुझे जोड़ना चाहिए, वास्तव में सरल होगा - जबकि रेगेक्स लिखने के लिए बहुत कठिन होगा (आपने मदद के लिए कहा था - शायद आपके पास 6 परीक्षणों के लिए नहीं होगा)

यह आपके कोड को समझने के लिए बहुत आसान बना देगा, मैं शर्त लगाऊंगा ;-)
और यह भी: बनाए रखने में आसान; और आवश्यकताओं में से किसी एक के अनुरूप शर्त में से एक को जोड़ने/निकालने/बदलने में आसान है।

+6

जब कोई पासवर्ड आवश्यकताओं को पूरा नहीं करता है तो इस विधि का दूसरा लाभ बेहतर त्रुटि संदेश प्रदान करेगा। उदाहरण के लिए, * * * आवश्यक चरित्र प्रकार को इंगित किया गया था। ऐसा पासवर्ड दर्ज करने से कहीं अधिक निराशाजनक नहीं है जो आपको लगता है कि काम करेगा और एक सामान्य त्रुटि संदेश प्राप्त होगा। – Emily

+0

@thekaido: 6 परीक्षणों के लिए भी, भले ही वाक्यविन्यास थोड़ा अलग हो ;;; @ एमिली: इतना सच! –

+0

प्रतीक्षा करें प्रतीक्षा करें! एक उपकरण सभी नौकरियों के लिए काम नहीं करता है? यदि ऐसा है तो आप यह भी कह रहे हैं कि मुझे ठीक सजावटी लकड़ी के काम के लिए चेनसॉ का उपयोग नहीं करना चाहिए! ओह! मैं भाग्यशाली हो गया! –

3

Regexlib.com आपके लिए कई उदाहरण हैं और रेग एक्स के खोजे जाने योग्य डेटाबेस हैं।

+0

लिंक – citronas

1
1 => /^.{6,15}$/ 
2 => /[a-z]/ 
3 => /[A-Z]/ 
4 => /\d/ 
5 => /[#{special_chars_for_regex}]/ 
6 => /^\S*$/ 
+0

'\ W' का अर्थ है * नहीं-शब्द-चरित्र *, नहीं * नहीं-व्हाइटस्पेस * (वह' \ S' है, लेकिन आप इसे पहले शर्त में शामिल कर सकते हैं जैसे @ मार्क बियर ने किया)। इसके अलावा, "विशेष पात्र" का अर्थ विराम चिह्न है। –

+0

मैंने '\ W' से' \ S' (धन्यवाद) बदल दिया। मैं विशेष वर्णों के पूरे सेट को वर्तनी की तरह महसूस नहीं करता था, लेकिन ~ [email protected] # $%^और * -_ = + [{]} \ | ;: '', <.> /?() 'चुटकी में हो सकता है। – yfeldblum

संबंधित मुद्दे