2012-11-15 19 views
11

मान्य करने के लिए PHP regex का उपयोग कर मैं regex का उपयोग करके PHP में उपयोगकर्ता नाम को सत्यापित करने का प्रयास कर रहा हूं और जो कुछ भी मैं सबमिट करता हूं वह चेक विफल रहता है। मैं अभी भी इस पर सुपर नया हूँ।उपयोगकर्ता नाम

if (!preg_match('/^[A-Za-z]{1}[A-Za-z0-9]{5-31}$/', $joinUser))

नियम:

  • 6-32 अक्षर में अक्षर से प्रारंभ होना चाहिए
  • केवल अक्षर और संख्याएं

मैं this online tester और this one too साथ काम कर रहा है । मैंने this thread और this thread पढ़ा लेकिन वह समझने में सक्षम नहीं था क्योंकि वे मेरे (लुकहेड और विभिन्न विशेष पात्रों) से थोड़ा अधिक जटिल लगते हैं।

मैंने पहले धागे को पढ़ने के बाद, ऐसा लगता है कि मैं उन लोगों में से एक हूं जो समझ में नहीं आता है कि "अक्षरों" को कैसे स्वीकार्य माना जाता है, यानी विदेशी पात्र, उच्चारण वर्ण आदि। मैं वास्तव में केवल अंग्रेजी वर्णमाला देख रहा हूं (क्या यह ASCII है?) और संख्या 0-9।

धन्यवाद।

उत्तर

28

एकमात्र समस्या यह है कि आपने अंतिम क्वांटिफायर गलत वर्तनी की है।

{5-31}{5,31}

तो अपने regex

if (!preg_match('/^[A-Za-z][A-Za-z0-9]{5,31}$/', $joinUser)) 

हो सकता है और आप {1} को छोड़ सकते हैं हो गया है, लेकिन यह चोट नहीं करता है।

+5

गीज़। यह हमेशा सबसे छोटी चीज क्यों है जिसे आप कभी नहीं देखते जब तक कि कोई इसे इंगित न करे? धन्यवाद। – gtcharlie

+0

@gtcharlie, केवल इसलिए कि यह सबसे छोटी चीज है;) – NullPointer

2

इस प्रयास करें:

if (!preg_match('/^[A-Za-z][A-Za-z0-9]{5,31}$/', $joinUser)) 
3

जाहिर है आप सभी को बदलने की जरूरत है 5-31 से 5,31 था।

कार्य उदाहरण:

if (preg_match('/^[A-Za-z]{1}[A-Za-z0-9]{5,31}$/', "moo123")) 
{ 
    echo 'succeeded'; 
} 
else 
{ 
    echo 'failed'; 
} 
+1

कूल मैं बहुत देर हो चुकी हूं। मदद करने की कोशिश करते समय कम से कम मैंने कुछ सीखा। –

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