2011-11-25 23 views
9

/(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,8}/की व्याख्या पासवर्ड regex घटक

यह रेगुलर एक्सप्रेशन से एक पासवर्ड है, जो कम से कम एक अंकों, दोनों लोअरकेस और अपरकेस अक्षर होने चाहिए मान्य करने के लिए माना जाता है। क्या कोई इस छोटे से घटकों द्वारा इस रेगेक्स को समझा सकता है?

+4

नियमित अभिव्यक्ति, नहीं के बारे में _your_ नियमित अभिव्यक्ति के बारे में सवाल पूछें। –

+2

@ लाइटनेसरेसेसिन ऑर्बिट निष्पक्ष होना, यह सिर्फ एक उदाहरण है। अधिकांश उदाहरणों की तरह, ज्ञान को अन्य परिदृश्यों पर लागू माना जाता है। –

उत्तर

11
/(?=.\d)(?=.[a-z])(?=.*[A-Z]).{6,8}/ 

इस regex आम तौर पर पासवर्ड मान्य करने के लिए है, यानी

पासवर्ड 1 UpperCase, 1 LowerCase और 1 numeric और no special characters शामिल करना चाहिए प्रयोग किया जाता है।

(?=.*\d) //at least 1 numeric charater. 

(?=.*[a-z]) //atleast 1 lowercase. 

(?=.*[A-Z]) //atleast 1 uppercase. 

.{6,8} //string is of 6 to 8 length. 

उम्मीद है कि इससे मदद मिलती है।

8

(?=.*\d) सुनिश्चित करता है अपने स्ट्रिंग उस में एक अंक है।

(?=.*[a-z]) सुनिश्चित करता है अपने स्ट्रिंग उस में एक लोअरकेस ASCII पत्र है।

(?=.*[A-Z]) सुनिश्चित करता है अपने स्ट्रिंग उस में एक बड़े ASCII पत्र है।

.{6,8} कम से कम 6 और में लगभग 8 वर्णों का स्ट्रिंग से मेल खाता।

के बाद एंकर याद कर रहे हैं, अपने रेगुलर एक्सप्रेशन से कोई भी स्ट्रिंग है जो अपने एक स्ट्रिंग है ऊपर 4 शर्तों के सभी को संतुष्ट करता है सबस्ट्रिंग के रूप में है से मेल खाएगा।

+1

(और निश्चित रूप से, यह केवल ASCII अक्षरों और अंकों का है। इसके अलावा, एंकरों के बिना, 8 वर्णों से अधिक लंबे तार (आंशिक रूप से) मैच भी होंगे) ... –

+0

@Tim: सही ... – codaddict

+1

+1 और हटा दिया गया मेरा, क्योंकि आपने तेज़ी से टाइप किया था। – stema

6

(?=..) का अर्थ है: मौजूदा स्थिति के बाद स्ट्रिंग को .. शामिल करें।

(?=.*\d) # Somewhere, at least one digit should appear 
(?=.*[a-z]) #   and at least a lowercase letter 
(?=.*[A-Z]) #   and at least an uppercase letter 
.{6,8}  #   must consist of 6-8 characters 

आपके पैटर्न में शुरुआत और स्ट्रिंग के अंत के लिए मार्कर अनुपलब्ध हैं। ^ और $ जोड़ें:

/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,8}$/ 
2

नियमित अभिव्यक्ति अस्पष्ट है। आपको वर्णों के संयोजन का उपयोग नहीं करना चाहिए "। *"। अवधि का अर्थ है किसी भी चरित्र और तारांकन कई 0 या अधिक घटनाएं, जो आपकी स्ट्रिंग की पूरी संभावना है।

3

विभिन्न भागों में देखो,

(?=.*\d) पासवर्ड कम से कम 6 अक्षर, और अधिक से अधिक 8 अक्षर लंबा ..

^(?=.*\d) एक संख्या में शामिल हैं,

(?=.*[a-z]) एक छोटी सी वर्णमाला और

होना चाहिए

(?=.*[A-Z]) एक पूंजी पत्र ..

आप लंबाई के किसी भी प्रतिबंध (कम, ऊपरी)

3
?= is look ahead for the following feature within brackets() 
then (?=.*\d) 0 or more of any character that is a decimal 0-9 
then (?=.*[a-z]) after that look ahead for 0 or more a-z characters 
then (?=.*[A-Z]) after that look ahead for 0 or more A-Z uppercase characters 
.{6,8}/ and then must be 6-8 character long 

शुरुआत के बिना साथ कम से कम एक छोटे अक्षर, एक बड़े अक्षर, और एक नंबर के लिए इस

^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{lower_limit, upper_limit}$ 

की तरह उपयोग कर सकते हैं^या $ समाप्त होने से उपरोक्त नियमों से मेल खाने वाले 6-8 अक्षरों की किसी भी स्ट्रिंग से मेल खाएगा।

यदि आप करने के लिए + * बदल तो यह 1 या अधिक वर्ण से मेल खाएगी

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