2012-12-10 5 views
5

मैं अन्य समान पदों में देख रहा हूं और समस्या एक अनचाहे स्लैश प्रतीत होती है। हालांकि मैं उनसे बच रहा हूँ।कोडइग्निटर form_validation में regex_match उत्पन्न करता है: संदेश: preg_match(): कोई समाप्ति डिलीमीटर '/' नहीं मिला

इस स्ट्रिंग देखना चाहिए कि कैसे:

23/12/2012

और यह कैसे मैं सत्यापन नियम की घोषणा कर रहा हूँ है:

regex_match[/^(0[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[012])\/(19|20)[0-9]{2}$/] 

समाप्त होने सीमांकक है वहां, और तिथि के लिए दोबारा बीच के स्लेश बैकस्लैश से बच रहे हैं। मैं भी इस जो थोड़ा अलग है की कोशिश की है, लेकिन मैं एक ही त्रुटि मिलती है:

regex_match[/^(0[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[012])\/(19|20)\d\d$/] 

त्रुटि कहां है?

संपादित करें:

अपने सलाह के बाद, मैं एक कॉलबैक फ़ंक्शन का उपयोग कर की कोशिश की है।

function mach_date($date) { 
    /* DEBUG */ echo 'Here I am!'; exit; // execution should stop here displaying the echo 
    return (bool)preg_match('/^(0[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[012])\/(19|20)\d\d$/', $date); 
} 

मान्यता नियमों आवेदन में/config/form_validation.php:

$config = array(
    // other validation groups....., 
    'articles' => array(
      // other validated fields....., 
      array(
       'field' => 'date_p', 
       'label' => 'Publishing date', 
       'rules' => 'callback_match_date' 
     ) 
    ) 
); 
+0

आप, जानकारी के लिए धन्यवाद समस्या कोड में ही –

+0

मैं इस मुद्दे –

उत्तर

5

जब आप यह घोषणा है, जो नियंत्रक वर्ग के भीतर स्थित है, जिसमें फ़ॉर्म सत्यापन क्रियान्वित किया जा रहा है प्रमाणीकरण नियम सेट करें जिन्हें आप उन्हें अलग करते हैं तो आपके रेगेक्स में | सत्यापन नियम उन पर विभाजित होने का कारण बन रहा है और यह त्रुटि उत्पन्न कर रहा है। इस मुद्दे पर चर्चा here। ऐसा लगता है कि यह कोडनिर्देशक में एक सीमा या बग है। आप इसके साथ और बिना किसी रेगेक्स को चलाकर इसका परीक्षण कर सकते हैं और देख सकते हैं कि पाइप के उपयोग से त्रुटि हो जाएगी या नहीं। यदि ऐसा है तो आपको अन्य माध्यमों से regex द्वारा मान्य करना पड़ सकता है, शायद इस page पर विस्तृत रूप से कॉलबैक फ़ंक्शन का उपयोग करें जहां आपका फ़ंक्शन रेगेक्स का उपयोग करके preg_match करेगा जो पाठ्यक्रम के अंदर होने की आवश्यकता है और फिर सत्य /असत्य।

+0

मैं देख रहा हूँ की अधिक जानकारी जोड़ी है @JulienMay के कुछ और पोस्ट कर सकते हैं। अब मैं कॉलबैक का उपयोग करने की कोशिश कर रहा हूं, लेकिन चूंकि मेरे नियम कॉन्फ़िगर/form_validation.php में एक ही नियंत्रक के बजाय लागू किए गए हैं, किसी कारण से इसे नहीं कहा जा रहा है। मैंने कॉलबैक को नियंत्रक के अंदर रखा है, और एप्लिकेशन/कोर निर्देशिका में स्थित अपने मूल नियंत्रक में भी कोशिश की है। लेकिन कॉलबैक निष्पादित नहीं किया गया है। –

+0

क्या आप प्रश्न में कॉलबैक फ़ंक्शन और कोड पोस्ट कर सकते हैं ताकि मैं देख सकूं कि यह कैसे किया जा रहा है। कृपया यह भी निर्दिष्ट करें कि प्रत्येक फाइल और कक्षाओं में कहां स्थित है। –

+0

मैंने और जानकारी जोड़ा है –

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