सुप्रभात मित्रों।

मेरे पास AJAX का उपयोग कर एक PHP है। कुछ अपडेट के लिए वर्तमान में मैं json का उपयोग कर रहा हूं, लेकिन कभी-कभी हमें कुछ मिलता है

'<div class="trigger error">Some error</div>{"1":{"message":"Success something."},"2":{"message":"There is update available"}}'

कुछ इस तरह लिखने का एक तरीका है

try{
   obj = JSON.parse(data);
   function_to_print_result(obj);
} catch (e){
   var string_json = REGEX(something(data));
   var old_system_error = REGEX(something(data));

   try{
      obj = JSON.parse(string_json);

      function_to_print_result(obj);
      function_to_print_old_error(old_system_error);
   } catch (e){
      $('.msg').empty().html(data);
   }
}

मैं रेगेक्स को समझने की कोशिश कर रहा हूं लेकिन, वास्तव में, मुझे बहुत मुश्किल है। मुझे केवल रेगेक्स चाहिए।

बहुत धन्यवाद।

-3
gmc_pecas 26 सितंबर 2020, 17:29

1 उत्तर

सबसे बढ़िया उत्तर

सबसे पहले, आपको वास्तव में एपीआई प्रतिक्रिया को ठीक करने पर काम करने की आवश्यकता है। वैध JSON इसमें HTML स्ट्रिंग्स को स्वीकार करने का कोई तरीका नहीं है।

अब, एपीआई प्रतिक्रिया के मिश्रित मूल्य से डेटा और त्रुटि संदेश निकालने के लिए इस अस्थायी समाधान का प्रयास करें।

var data = '<div class="trigger error">Some error</div>{"1":{"message":"Success something."},"2":{"message":"There is update available"}}';
var obj;
try{
   obj = JSON.parse(data);
   function_to_print_result(obj);
} catch (e){
   var old_system_error;
   var regex = /^<[a-zA-Z"= ]+>[a-zA-Z ]+<\/+[a-zA-Z]+>(?={)/gi;
   var string_json = data.replace(regex, function(match, token){
    old_system_error = match;
    return '';
   })

   try{
      obj = JSON.parse(string_json);
      console.log(obj);
      console.log(old_system_error);
   } catch (e){
      console.log(e);
   }
}
0
Heri Hehe Setiawan 26 सितंबर 2020, 18:00