@ कोडेडडिक्ट का समाधान काम करेगा।
आपको अपने कुछ नियमों को बदलने पर भी विचार करना चाहिए:
- अधिक विशेष वर्ण जोड़ें अर्थात%, ^, (,), -, _, + और अवधि। मैं उन सभी विशेष वर्णों को जोड़ रहा हूं, जिन्हें आपने यूएस कीबोर्ड में संख्या चिह्नों से ऊपर याद किया था। बचो रेगेक्स उपयोग करता है।
- पासवर्ड 8 या अधिक अक्षर का बनाएं। सिर्फ एक स्थिर संख्या 8 नहीं।
उपरोक्त सुधारों के साथ, और अधिक लचीलेपन और पठनीयता के लिए, मैं रेगेक्स को संशोधित करूंगा।
^(?=.*[a-z]){3,}(?=.*[A-Z]){2,}(?=.*[0-9]){2,}(?=.*[!@#$%^&*()--__+.]){1,}.{8,}$
मूल व्याख्या
(?=.*RULE){MIN_OCCURANCES,} Each rule block is shown by (){}. The rule and number of occurrences can then be easily specified and tested separately, before getting combined
विस्तृत विवरण
^ start anchor
(?=.*[a-z]){3,} lowercase letters. {3,} indicates that you want 3 of this group
(?=.*[A-Z]){2,} uppercase letters. {2,} indicates that you want 2 of this group
(?=.*[0-9]){2,} numbers. {2,} indicates that you want 2 of this group
(?=.*[!@#$%^&*()--__+.]){1,} all the special characters in the [] fields. The ones used by regex are escaped by using the \ or the character itself. {1,} is redundant, but good practice, in case you change that to more than 1 in the future. Also keeps all the groups consistent
{8,} indicates that you want 8 or more
$ end anchor
और अंत में, परीक्षण के प्रयोजनों के लिए यहां उपरोक्त रेगेक्स के साथ एक लुटेला है