5

पर कार्य नहीं कर रहा गुण मैं इस बारे में स्टैक ओवरफ़्लो पर एक समान विषय को खोजने के लिए नहीं कर पा रहे हैं, इसलिए यहाँ जाता है: जब मैं अपने एएसपी के खिलाफ निर्दिष्टASP.NET MVC [रेग्युलर ऍक्सप्रैशन] पूरी स्ट्रिंग के मिलान

ऐसा क्यों है नेट MVC दृश्य मॉडल वर्ग निम्नलिखित परिभाषा:

[Required] 
[RegularExpression(@"\A\d{3,4}\Z", 
    ErrorMessage = "The security code (CVN) must be between 3 - 4 digits long.")] 
[Display(Name = "Card Security Code (CVN)")] 
public string CardCVN { get; set; } 

मेरी विनीत ग्राहक साइड सत्यापन परीक्षण पर नियमित अभिव्यक्ति मान्य नहीं किया जा सकता है कि? (और बाद में एक फॉर्म फ़ील्ड त्रुटि प्रदर्शित करता है)।

यह जैसे ही मेरी regex पूरी स्ट्रिंग मिलान तकनीक को हटाने [RegularExpression(@"\d{3,4}"... परिवर्तित करने के लिए लगता है, यह पूरी तरह से मेल खाता है? और यह jQuery मान्यता है कि renders लगता है, भले ही यह \A या \Z यह केवल पूरी स्ट्रिंग मैच पर वैसे भी मेल खाता है लागू नहीं होता है (क्या मैं मूल रूप से की जरूरत है!); क्या मैं कुछ भूल रहा हूँ?

धन्यवाद।

उत्तर

3

क्लाइंट साइड पर, रेगेक्स जावास्क्रिप्ट द्वारा निष्पादित किया जाता है, और जेएस \A, \Z या \z का समर्थन नहीं करता है। आप इसके बजाय ^ और $ का उपयोग कर सकते हैं, लेकिन आपको इसकी आवश्यकता नहीं है। वैधकर्ताओं में उपयोग किए जाने वाले रेगेक्स आमतौर पर दोनों सिरों पर स्वचालित रूप से लगाए जाते हैं। मुझे पूरा यकीन है कि एएसपी.नेट एमवीसी के साथ मामला है।

+0

धन्यवाद एलन। दिलचस्प है, कोई कल्पना करेगा कि एएसपी.नेट एमवीसी वास्तव में इसे परिवर्तित कर लेना चाहिए :) – GONeale

2

उपयोग इस बजाय: @"^\d{3,4}$"

^ - स्ट्रिंग की शुरुआत।

$ - स्ट्रिंग के अंत।

+1

आपने \ on \ d को याद किया। हालांकि प्रतिक्रिया के लिए धन्यवाद। मैं एलन को अंक के साथ पुरस्कार दूंगा क्योंकि उन्होंने हालांकि उनकी प्रतिक्रिया समझाई थी। – GONeale