2009-06-09 16 views
7

को सीमित करने के लिए नियमित अभिव्यक्ति मुझे एक समस्या है जहां मुझे 400 वर्णों तक स्ट्रिंग की लंबाई सीमित करने के लिए RegularExpressionValidator का उपयोग करने की आवश्यकता है।स्ट्रिंग लम्बाई

मेरे अभिव्यक्ति थी .{0,400}

मेरा प्रश्न: क्या विचार खाली स्थान में लेने के बिना 400 वर्णों की लंबाई सीमित करने के लिए कोई तरीका है?

मैं स्ट्रिंग में खाली रिक्त स्थान स्वीकार करने में सक्षम होना चाहता हूं लेकिन लंबाई में इसकी गणना नहीं करना चाहता हूं। क्या यह संभव है?

+0

यह नियमित अभिव्यक्ति के साथ सख्ती से संभव नहीं है लेकिन कई भाषाओं में है। आप इसे किस भाषा में लागू करने का प्रयास कर रहे हैं? – Copas

+0

मैं एक asp.net वेब अनुप्रयोग (vb.net) में RegularExpressionValidator नियंत्रण का उपयोग कर रहा हूँ। – Boopid

उत्तर

11

मैं ग्रेग के साथ काफी सहमत हूँ, लेकिन यहाँ regex आप चाहते है:

^\s*([^\s]\s*){0,400}$ 

@Boopid: यदि आप वास्तव में केवल अंतरिक्ष चरित्र की है तो regex में एक स्थान के साथ \ रों बदलें।

+0

[^] के बजाय [^ \ s] नहीं होना चाहिए? इसके अलावा: अच्छा! – Stephan202

+0

(या 'रिक्त स्थान' द्वारा प्रश्नकर्ता वास्तव में केवल अंतरिक्ष चरित्र का मतलब है?) – Stephan202

+2

या [^ \ s] –

7

ऐसा लगता है कि आप RegularExpressionValidator का उपयोग करने के बजाय अपनी खुद की वैधता कक्षा लिखना चाहेंगे। नियमित अभिव्यक्तियों का निश्चित रूप से उनका उपयोग होता है, लेकिन यह उनमें से एक की तरह नहीं लगता है।

आपका कस्टम सत्यापनकर्ता सभी रिक्त स्थान निकाल सकता है, फिर स्ट्रिंग की लंबाई जांचें। आखिरकार, कोड एक नियमित अभिव्यक्ति से अधिक पठनीय होगा जो एक ही काम करता है।

+0

मैं सहमत हूं, बस सभी सफेद जगह हटा दें और स्ट्रिंग की लंबाई जांचें। ऊपर सुझाए गए रेगेक्स की तुलना में शायद बहुत ही कुशल (हालांकि यह केवल एक सिद्धांत है)। –

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