पहले, पत्र थोड़ा अस्पष्ट शब्द है: आप a..z
और A..Z
पात्रों मतलब है या पत्र सका से संबंधित कोई वर्णमाला, उदाहरण के लिए а..я
और А..Я
(रूसी, सिरिलिक अक्षरों)। आपके वर्तमान कार्यान्वयन के अनुसार, आप दूसरा विकल्प चाहते हैं।
पाश के साथ विशिष्ट समाधान पहले काउंटर उदाहरण जब तक जांच करने के लिए है:
Boolean validA = true; // true - no counter examples so far
// Why for? foreach is much readble here
foreach(Char ch in sname)
// "!= '_'" is more readable than "Equals"; and wants no boxing
if (!char.IsLetterOrDigit(ch) && ! (ch != '_')) {
Boolean validA = false; // counter example (i.e. non-letter/digit symbol found)
break; // <- do not forget this: there's no use to check other characters
}
हालांकि आप के साथ कोड को आसान बनाने में कर सकते हैं या तो Linq:
validA = sname.All(ch => Char.IsLetterOrDigit(ch) || ch == '_');
या नियमित अभिव्यक्ति:
validA = Regex.IsMatch(sname, @"^\w*$");
स्रोत
2015-12-14 10:35:40
इस पैटर्न पर जांच के लिए रेगेक्स का उपयोग करने का प्रयास करें: ([ए-ज़ा-जे 0-9 \ - \ _] +) –
मुझे नहीं पता। validA एक बुलियन है जिसे केवल तभी सही किया जाना चाहिए जब शर्तों को पूरा किया जाता है लेकिन यह सही पर सेट होता है भले ही स्ट्रिंग के विशेष वर्ण –
"काम नहीं करता" क्या होता है? त्रुटियों? अमान्य परिणाम? – Sayse