2011-02-10 10 views
6

वर्तमान मैं उपयोगकर्ता के लिए निम्न regex का उपयोग के रूप में मैं समझता हूँ कि अब एक पासवर्डRegEx में किसी भी चरित्र को कैसे अनुमति दें?

^\w{8,16}$ 

दर्ज करने के लिए, \ w केवल एक-z, A-Z, 0-9 और _ चरित्र अनुमति देता है। मैं जो करना चाहता हूं वह किसी भी चरित्र को अनुमति देना है, लेकिन लंबाई 8 और 16 के बीच होनी चाहिए। मैं इसे करने के बारे में कैसे प्राप्त करूं? Thanx अग्रिम में बहुत :) :)

+4

आपको रेगेक्स का उपयोग करने की आवश्यकता क्यों है? मुझे यकीन है कि आप जिस भी भाषा का उपयोग कर रहे हैं वहां एक चार गिनती फ़ंक्शन है जो आपकी स्ट्रिंग की लंबाई को गिनती है। – Joe

+1

आप बिल्कुल सही हैं जो! तो मुझे वास्तव में केवल RegEx की आवश्यकता होगी यदि ऐसी स्थिति है जहां कुछ वर्ण पासवर्ड आदि में नहीं होना चाहिए? –

+0

'w wont match' _' AFAIK – leppie

उत्तर

9

सबसे पहले, रेगेक्स की बजाय आपको जो चाहिए उसकी आवश्यकता के लिए एक शब्द गणना का उपयोग करें।

यदि आपको वास्तव में जरूरी है, तो .{8,16} काम करना चाहिए, . एक एकल से मेल खाता है, इससे कोई फर्क नहीं पड़ता कि यह क्या है।

संपादित करें: अपने अगले सवाल है, जो निश्चित रूप से हो जाएगा एक अच्छा पासवर्ड सत्यापन रेगुलर एक्सप्रेशन है क्या जगह ले लेना करने के लिए आप इन ब्लॉगों में से कुछ की जाँच करने के लिए चाहते हो सकता है:

http://nilangshah.wordpress.com/2007/06/26/password-validation-via-regular-expression/

http://www.zorched.net/2009/05/08/password-strength-validation-with-regular-expressions/

या Google

6

पर केवल 'पासवर्ड सत्यापन स्टैक ओवरफ्लो' देखें, इसे आजमाएं:

^.{8,16}$ 

डॉट एक चरित्र से मेल खाता है, बिना उस चरित्र की देखभाल किए। एकमात्र अपवाद न्यूलाइन वर्ण हैं। डिफ़ॉल्ट रूप से, डॉट एक न्यूलाइन वर्ण से मेल नहीं खाएगा।

विवरण के लिए, कृपया यहां जाएं: http://www.regular-expressions.info/dot.html

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