मुझे टेक्स्टरेरा में कैरिज रिटर्न की समस्या है \r\n सब ठीक काम कर रहा है लेकिन जब मैं कैरिज रिटर्न लिखता हूं तो मेरे पास एक त्रुटि संदेश स्ट्रिंग अक्षर में एक अनचाहे लाइन ब्रेक होता है मेरा कोड:

e.preventDefault();
    
    var req = new XMLHttpRequest();
    var aInputFeedback=document.getElementsByClassName('inputfeedback');
    for(var i=0;i<aInputFeedback.length;i++){
    if(i==2){
    value = aInputFeedback[i].value.replace( /\r/g, '\\r' );
    aInputFeedback[i].value=value;
    
    
    }
    //alert(aInputFeedback[i].value);
    eval("var inputValue"+i+"=\""+aInputFeedback[i].value+"\";");
    //ICI REPLACE 
                     
    alert(aInputFeedback[i].value);
    
    }
    

मेरा रेगेक्स काम नहीं करता है आपकी मदद के लिए धन्यवाद

0
Laurent Gevaert 11 फरवरी 2021, 22:48
आपका स्निपेट चलाने योग्य नहीं है... आप किस लाइन पर त्रुटि प्राप्त कर रहे हैं? eval लाइन? (टेक्स्टरेरा की सामग्री के साथ eval का उपयोग एक बड़ी सुरक्षा समस्या है। मैं इसका उपयोग आपके पृष्ठ में मनमानी कोड निष्पादित करने के लिए कर सकता हूं)
 – 
Stephen P
11 फरवरी 2021, 22:55
\r के बजाय \n का उपयोग करने का प्रयास करें
 – 
brunoff
11 फरवरी 2021, 22:55
इनपुट मान से लाइन-ब्रेक को हटाना काम नहीं करता है, क्योंकि त्रुटि गन्दा उद्धरण के कारण है। बस eval को हटा दें, और एक सरणी को असाइन करने के लिए मान बनाते हुए एक्सप्रेशन में उद्धरण को ठीक करें जिसका आपको "अनुक्रमित चर" के बजाय उपयोग करना चाहिए।
 – 
Teemu
11 फरवरी 2021, 22:55
धन्यवाद मैं सहमत हूं कि बिना eval के गतिशील चर कैसे बनाया जाए?
 – 
Laurent Gevaert
12 फरवरी 2021, 13:37

1 उत्तर

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

spec लाइन ब्रेक की समस्या को एक प्रक्रिया के साथ संबोधित करता है, जिसका नाम नईलाइनों को नॉर्मेल करना है और यह बताता है:

स्ट्रिंग में न्यूलाइन्स को सामान्य करने के लिए, प्रत्येक U+000D CR U+000A LF कोड पॉइंट पेयर को एक U+000A LF कोड पॉइंट से बदलें, और फिर प्रत्येक शेष U+000D CR कोड पॉइंट को U+000A LF कोड पॉइंट से बदलें।

तो जैसा कि ब्रूनॉफ सुझाव देता है, बदलें: \r से \n RegEx पैटर्न में।

0
Randy Casburn 11 फरवरी 2021, 23:04
यह \n के साथ काम नहीं करता है, लेकिन त्रुटि संदेश eval से आता है और eval के "और \" से आता है कि eval को कैसे बदला जाए? धन्यवाद
 – 
Laurent Gevaert
12 फरवरी 2021, 13:43
RegEx काम करता है और यह आपके प्रश्न का उत्तर देता है। eval के साथ समस्या एक अलग प्रश्न है। लेकिन, मुझे समझ में नहीं आता कि आप ऐसा क्यों नहीं करते: window['inputValue'+i] = a[i].value; के बजाय eval वैसे भी।
 – 
Randy Casburn
12 फरवरी 2021, 18:05
मैं एक साधारण सरणी के साथ eval को प्रतिस्थापित करता हूं समस्या eval के दोहरे उद्धरण से आई और \r\n ने मेरी स्ट्रिंग में एक स्थान बनाया आपकी मदद के लिए धन्यवाद
 – 
Laurent Gevaert
12 फरवरी 2021, 20:33
कृपया मेरे उत्तर को स्वीकार करने पर विचार करें क्योंकि इससे आपके द्वारा पूछे गए प्रश्न का समाधान हो गया: "मेरा रेगेक्स काम नहीं करता"
 – 
Randy Casburn
12 फरवरी 2021, 20:36