यह डिज़ाइन द्वारा है और कई लोगों को फेंकने लगता है। RegularExpressionValidator एक फ़ील्ड अनिवार्य नहीं बनाता है और इसे रिक्त होने और सफेद जगहों को स्वीकार करने की अनुमति देता है। \ D + प्रारूप सही है। यहां तक कि^\ d + $ का उपयोग करने से व्हाइटस्पेस को अनुमति देने की एक ही समस्या होगी। व्हाइटस्पेस को अस्वीकार करने के लिए इसे मजबूर करने का एकमात्र तरीका एक ही नियंत्रण पर काम करने के लिए एक आवश्यक फ़ील्ड वैलिडेटेटर भी शामिल करना है।
सत्यापन सफल होता है इनपुट नियंत्रण खाली है:
यह RegularExpressionValidator documentation, जिसमें कहा गया है प्रति है। यदि संबंधित इनपुट नियंत्रण के लिए आवश्यक मान है, तो RegularExpressionValidator नियंत्रण के अतिरिक्त एक आवश्यक फ़ील्ड वैलिडेटर नियंत्रण का उपयोग करें।
कोड-बैक में फ़ील्ड की एक नियमित अभिव्यक्ति जांच अपेक्षा के अनुसार काम करेगी; यह RegularExpressionValidator के साथ केवल एक मुद्दा है। तो आप इसके बजाय एक कस्टम वैलिडेटर का उपयोग कर सकते हैं और args.IsValid = Regex.IsMatch(txtInput.Text, @"^\d+$")
कह सकते हैं और यदि इसमें व्हाइटस्पेस है तो यह झूठी वापसी होगी। लेकिन अगर ऐसा है तो क्यों न केवल दस्तावेज प्रति आवश्यक फ़ील्ड वैलिडेटेटर का उपयोग करें और कस्टम कोड लिखने से बचें? इसके अलावा एक कस्टम वैलिडेटर का मतलब अनिवार्य पोस्टबैक है (जब तक आप समकक्ष जावास्क्रिप्ट रेगेक्स के साथ क्लाइंट सत्यापन स्क्रिप्ट निर्दिष्ट नहीं करते)।
स्रोत
2009-07-06 05:27:52
सभी सफेद जगहों को खाली माना जाता है? ऐसा लगता है कि सर्वर पर ट्रिम उत्तर है। –
हां, इसे खाली छोड़कर या व्हाइटस्पेस जोड़ना वही है। एक बार जब एक चरित्र दर्ज किया गया है तो सत्यापनकर्ता ट्रिगर करेगा, इसलिए "10" दर्ज करना मान्य है। आप इसे वैसे ही रख सकते हैं, यह जानकर कि जो भी इसे बनाता है वह मान्य संख्या या सफेद जगह होगी। किसी भी मामले में अपने मूल्य को ट्रिम करें। –
अहमद धन्यवाद। मेरी इच्छा है कि एमएसडीएन दस्तावेज़ कहेंगे "सभी सफेद जगह खाली है"! –