Regex

2012-08-16 12 views
13
का उपयोग कर पासवर्ड मान्य कर

मैं एक रेल 3 न मापदंडों के आधार पर पासवर्ड को मान्य करने की जरूरत है उस पर काम कर रहा हूँ: अभीRegex

validates :password, :format => {:with => /^[([a-z]|[A-Z])0-9_-]{6,40}$/, message: "must be at least 6 characters and include one number and one letter."} 

अगर मैं में डाल दिया: must be at least 6 characters and include one number and one letter.

यहाँ मेरी Regex है का पासवर्ड (पूर्व में: डॉगफूड) यह गुजर जाएगा। लेकिन मुझे उपरोक्त मानदंडों को पारित करने के लिए क्या करना है।

मैं रेगेक्स पर इतना अच्छा नहीं हूं, इसलिए किसी भी और सभी मदद की बहुत सराहना की जाती है!

उत्तर

27

उपयोग अग्रदर्शी दावे:

/^(?=.*[a-zA-Z])(?=.*[0-9]).{6,}$/ 
    |    |   | 
    |    |   | 
    |    |   Ensure there are at least 6 characters. 
    |    | 
    |    Look ahead for an arbitrary string followed by a number. 
    |       
    Look ahead for an arbitrary string followed by a letter. 

तकनीकी तौर पर इस मामले में आप एंकर की जरूरत नहीं है, लेकिन यह उन्हें उपयोग करने के लिए अच्छी आदत है।

+0

वाह, यह पूरी तरह से काम करता है! बहुत बहुत धन्यवाद! क्या आप लुकहेड दावे के बारे में थोड़ा सा समझा सकते हैं? – dennismonsewicz

+3

लुकहेड एक पैटर्न के लिए तत्पर हैं, यहां यह कुछ भी (।) 0 या अधिक बार [ए-जेए-जेड] और [0-9] के साथ शुरू होने से शुरू होगा। लुकहेड आगे नहीं बढ़ते हैं, इसलिए जब भी यह आता है तब भी आप स्थिति 0 पर होंगे। {0,6} जो 6+ – netigger

+0

की लंबाई को सत्यापित करेगा स्पष्टीकरण के लिए संपादित उत्तर देखें। लेकिन @ डेविडएवरलोफ एक और गहराई से स्पष्टीकरण जोड़ने के लिए धन्यवाद। –

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