2010-09-24 15 views
6

के लिए गैर-अंग्रेज़ी वर्णों की अनुमति नहीं दे रहा है मेरे पास मेरे पृष्ठ में ईमेल फ़ील्ड है, जिसे मैं नियमित रूप से अभिव्यक्ति सत्यापनकर्ता का उपयोग करके मान्य कर रहा हूं, जो मेरे asp.net प्रदान करता है। मैं एक ही मान्यता अभिव्यक्ति का उपयोग कर रहा के रूप में सत्यापनकर्ता ईमेल अर्थात् के साथ दिए गएनियमित अभिव्यक्ति सत्यापनकर्ता w

ValidationExpression = "\ w + ([-। + '] \ W +) @ \ w + ([-।] \ W +)। \ w + ([-।] \ w +) * "

यह ठीक काम कर रहा है लेकिन समस्या तब आती है जब मैंने गैर-अंग्रेजी अक्षरों को देने की कोशिश की

ई ई ü ü एक आदि

लेकिन मेरी समस्या यह है, जब मैं भी सर्वर साइड पर एक ही अभिव्यक्ति जावास्क्रिप्ट में यह इन पात्रों की अनुमति देता है का उपयोग करें, भी एक ही अभिव्यक्ति इन पात्रों की अनुमति देता है।

मुझे लगता है कि 'w' सभी अल्फान्यूमेरिक वर्णों के साथ-साथ गैर अंग्रेजी वर्णों को भी अनुमति देता है लेकिन मुझे नहीं पता कि यह वैधता में इसका उपयोग करते समय क्यों अनुमति नहीं दे रहा है।

कृपया सुझाव दें कि मैंने गलत किया है या नहीं।

उत्तर

1

यह ईसीएमएस्क्रिप्ट मानक की एक सीमा है; उदा .NET \w में भी गैर-अंग्रेजी वर्णों से मेल खाता है।

सबसे आसान समाधान क्लाइंट-साइड सत्यापन को बंद करना है क्योंकि आप ASP.NET के साथ काम कर रहे हैं, इसलिए सर्वर-साइड सत्यापनकर्ता (जो .NET कार्यान्वयन का उपयोग करता है) तदनुसार मान्य होगा।


var r = new Regex(@"\w"); 
foreach(var m in r.Matches("è é ü û a")) 
     Console.WriteLine(m); 

Output: 
è 
é 
ü 
û 
a 
+0

हाय जान, प्रतिक्रिया के लिए धन्यवाद। इसका मतलब है कि मैं वैधकर्ता का उपयोग कर गैर-अंग्रेजी वर्णों को मान्य नहीं कर सकता। मैं अब अपने आवेदन में क्लाइंट साइड स्क्रिप्ट शामिल नहीं कर सकता। क्या कोई अन्य तरीका है इसलिए मैं केवल वैधता द्वारा मान्य कर सकता हूं? – Rahul

2

\w शब्द चरित्र का अर्थ है। और एक शब्द चरित्र की परिभाषा कार्यान्वयन से कार्यान्वयन में भिन्न हो सकती है। कुछ केवल [A-Za-z0-9_] का उपयोग करते हैं जबकि अन्य गैर-यूएस-एएससीआईआईआई अक्षरों को भी शामिल करते हैं (comparison of regular expression flavors में "ascii-only" देखें)।

यदि आप यह सुनिश्चित करना चाहते हैं कि समान वर्णों का उपयोग किया जाए, तो उन्हें स्पष्ट रूप से [A-Za-z0-9_èéüûă] की तरह सूचीबद्ध करें।

+0

आप अपनी तेजी से प्रतिक्रिया के लिए Gumbo धन्यवाद। लेकिन पात्रों की पूरी सूची प्राप्त करना बहुत मुश्किल है। – Rahul

+1

@ राहुल: आधुनिक नियमित अभिव्यक्ति पुस्तकालय अक्सर पूर्वनिर्धारित चरित्र वर्गों का समर्थन करते हैं जैसे '\ w' पूर्वनिर्धारित है। कुछ को भी उनके यूनिकोड चरित्र गुणों द्वारा वर्णों का वर्णन करके समर्थन मिलता है] (http://www.regular-expressions.info/unicode.html)। – Gumbo

1

यह ज्ञात समस्या है: एएसपी.Net नियमित अभिव्यक्ति क्लाइंट-साइड सत्यापनकर्ता गैर-अंग्रेज़ी वर्णों के लिए छोटी है। आप या तो सर्वर-साइड सत्यापन (यदि यह एक विकल्प है) का उपयोग कर सकते हैं, या अपना खुद का क्लाइंट-साइड कस्टम वैलिडेटर लिख सकते हैं।

+0

reponses के लिए धन्यवाद, यह स्थिति को स्पष्ट करता है। – Rahul

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