2011-05-31 25 views
14

मैं निम्नलिखित कोड का इस्तेमाल किया है, लेकिन यह गलत लौटा रहा है, हालांकि यह सच लौट जानाजांच अक्षरांकीय अक्षर

string check,zipcode; 
zipcode="10001 New York, NY"; 
check=isalphanumeric(zipcode) 

public static Boolean isAlphaNumeric(string strToCheck) 
{ 
    Regex rg = new Regex("[^a-zA-Z0-9]"); 

    //if has non AlpahNumeric char, return false, else return true. 
    return rg.IsMatch(strToCheck) == true ? false : true; 
} 
+1

आपको इसे ढीला करने की आवश्यकता है ताकि यह रिक्त स्थान और अल्पविरामों को अनुमति दे सके। – Marko

+0

योर नमूना स्ट्रिंग – Stecya

+0

में ',' char है http://stackoverflow.com/q/336210/82449 मदद कर सकता है। –

उत्तर

44

इस एक कोशिश करें।

ऊपर के उदाहरण में:

  • ^- इसका मतलब है स्ट्रिंग की शुरुआत
  • [] * - किसी भी अल्फान्यूमेरिक - कोष्ठक
  • एक-zA-Z0-9 के बीच है वर्णों की संख्या को रख सकती पात्रों
  • \ s - किसी भी स्थान वर्ण (अंतरिक्ष/टैब/आदि।)
  • , - अल्पविराम के
  • $ - स्ट्रिंग के अंत
+0

यह इस पृष्ठ पर एकमात्र सही जवाब है। कृपया ध्यान दें, कि यह रेगेक्स एक स्ट्रिंग को भी अनुमति देता है जो पूरी तरह खाली है। तो मैं * को एक + के साथ बदल दूंगा। अल्पविराम अल्फान्यूमेरिक नहीं है, इसलिए फ़ंक्शन का नाम भ्रामक है। यदि आप एक छोटा संस्करण चाहते हैं तो आप लिख सकते हैं: @ "^ [\ w \ s,] + $" – Elmue

5

10001 New York, NY एक अल्पविराम और रिक्ति अल्पविराम और रिक्त स्थान की अनुमति देने के लिए अपनी अभिव्यक्ति समायोजित करें।

इसके अलावा, आप शायद फ़ंक्शन का नाम बदलना चाहेंगे ताकि यह अन्य डेवलपर्स के लिए स्पष्ट हो कि यह AAphaNumeric() फ़ंक्शन की तुलना में एक वैधकर्ता से अधिक है।

1

जब^में है [] इसका अर्थ यह है कि इन पात्रों के अलावा सबकुछ है।

public static Boolean isAlphaNumeric(string strToCheck) 
{ 
    Regex rg = new Regex(@"^[a-zA-Z0-9\s,]*$"); 
    return rg.IsMatch(strToCheck); 
} 

अगर आप रेगुलर एक्सप्रेशन से, क्या आपके स्ट्रिंग चाहिए शामिल में निर्दिष्ट यह अधिक undestandable है, न कि इसमें क्या नहीं करना चाहिए:

23
public static bool IsAlphaNumeric(string strToCheck) 
    { 
     return strToCheck.All(char.IsLetterOrDigit); 
    } 
+1

-1। अंतरिक्ष या अल्पविराम की अनुमति नहीं है –

+10

अल्पविराम एक अल्फान्यूमेरिक चरित्र नहीं है! – Elmue

+0

@ एल्मु मुझे अभी भी यह जवाब अधिक सामान्य और अधिक उपयोगी लगता है। मैं ऐसे समाधान की तलाश नहीं कर रहा था जिसने मुझे अक्षरों, अंक, और कुछ एक-एक विराम चिह्नों को दिया। मैं अक्षरों और अंकों के समाधान के लिए googled, और यह जवाब मुझे सबसे अच्छा सेवा करता है। –

0
tring check,zipcode; 
zipcode="10001 New York, NY"; 
check=isalphanumeric(zipcode) 

    public static Boolean isAlphaNumeric(string strToCheck) 
      { 
       Regex rg = new Regex("[^a-zA-Z0-9]"); 

       //if has non AlpahNumeric char, return false, else return true. 
       return rg.IsMatch(strToCheck) == true ? false : true; 
      } 

इस कोड को वापसी हमेशा गलत है, क्योंकि symbole^मतलब यह है कि इस स्ट्रिंग किसी भी अल्फान्यूमेरिक caractère शामिल नहीं करता है, तो आप, मेरे पर्ल दिनों में हटाने के लिए इस^

+0

आपका उत्तर गलत है।^एकमात्र त्रुटि नहीं है। इसे हटाने के बाद भी, यह अभी भी गलत होगा। इस regex में कई त्रुटियां हैं। क्या आपको लगता है कि आप इस तरह के उत्तरों के साथ प्रतिष्ठा कमाएंगे? – Elmue

0

वापस की जरूरत है

\ w +

जो एक या अधिक शब्द चरित्र का मतलब है: मैं इस नियमित अभिव्यक्ति का इस्तेमाल किया गया होगा। एक शब्द चरित्र मूल रूप से ए-जेए-जेड 0 9 है और मूल रूप से विराम चिह्न या रिक्त स्थान की परवाह नहीं करता है। तो अगर आप सिर्फ यह सुनिश्चित स्ट्रिंग में मूल्य के someting है कि वहाँ करना चाहते हैं, यह है कि क्या मैं सी # में प्रयोग किया जाता है: बुनियादी संरचना के लिए Chopikadze को

public static Boolean isAlphaNumeric(string strToCheck) 
{ 
    Regex rg = new Regex(@"\w+"); 
    return rg.IsMatch(strToCheck); 
} 

धन्यवाद।

मुझे लगता है कि यह पूरी स्ट्रिंग के माध्यम से जांचने के बजाय तेज़ होगा, यह एक शब्द चरित्र के पहले उदाहरण पर रोक देगा और एक सत्य लौटाएगा।

+0

यह उत्तर भी गलत है। आपका रेगेक्स रिक्त स्थान की अनुमति नहीं देता है और यह केवल दिए गए स्ट्रिंग के अंदर किसी भी शब्द के लिए खोज करता है। यह जांच नहीं करता है कि संपूर्ण स्ट्रिंग आईएस अल्फान्यूमेरिक है। तो आपके उत्तर में कई त्रुटियां हैं! – Elmue

0

मैं एक विधि की जरूरत देखने के लिए कि स्ट्रिंग Regex का उपयोग किए बिना, किसी भी अल्फा न्यूमेरिक शामिल ...

सार्वजनिक स्थैतिक bool ContainsAlphaNumeric (स्ट्रिंग strToCheck) { foreach (strToCheck में चार ग) { अगर (चार।IsLetterOrDigit (सी)) { सच वापसी; } } झूठी वापसी; }

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