2011-12-25 17 views
191
<textarea cols='60' rows='8'>This is my statement one.\n This is my statement2</textarea> 

<textarea cols='60' rows='8'>This is my statement one.<br/> This is my statement2</textarea> 

मैंने दोनों की कोशिश की लेकिन एचटीएमएल फाइल को प्रस्तुत करते समय नई लाइन प्रतिबिंबित नहीं हो रही है। मैं यह कैसे कर सकता हूं?टेक्स्ट एरिया में नई लाइन

उत्तर

381

इस एक का प्रयास करें:

<textarea cols='60' rows='8'>This is my statement one.&#13;&#10;This is my statement2</textarea> 

&#10; लाइन फ़ीड और &#13; कैरिज रिटर्न HTML entitieswikipedia हैं। इस तरह आप वास्तव में पाठ के रूप में प्रदर्शित करने के बजाय नई लाइन ("\ n") को पार्स कर रहे हैं।

+1

मुझे नहीं पता कि 'टेक्स्ट की तरह इसे प्रदर्शित करने' के बजाए पार्सिंग न्यूलाइन क्या है, लेकिन इसका मतलब 'इंजेक्ट करने का कोई अर्थ नहीं है। विंडोज क्रोम इसे वैसे भी हटा देता है। जब आप 'textarea.value' को विभाजित करते हैं, तो आप इसे \ n' वर्ण से करते हैं और स्रोत के संबंध में टेक्स्टरेरा मान में कोई भी \ r' नहीं है। –

+0

@LittleAlien https://jsfiddle.net/v0y3xvpx/1/ - ओपी प्रश्न के आधार पर उत्तर, स्पष्ट रूप से समस्या हल हो गई – Bakudan

+0

जाहिर है, आपने ओपी प्रश्न को याद किया है। आपने शायद किसी अन्य प्रश्न का उत्तर दिया है। यह सवाल कैरिज रिटर्न के बारे में नहीं पूछता है। यह नई लाइन के बारे में पूछता है। इस सवाल के लिए कैरिज रिटर्न अनावश्यक है। यह हमेशा अनावश्यक है क्योंकि ब्राउज़र द्वारा इसे हटा दिया जाता है भले ही आप इसे स्रोत कोड में निर्दिष्ट करते हैं। –

4

आप /n के बजाय \n का उपयोग करना चाह सकते हैं।

+4

ठीक है, एक शाब्दिक '\ n' काम नहीं करेगा, इसे एक * वास्तविक * नई लाइन की आवश्यकता होगी। –

+0

हां, ज़ाहिर है। लेकिन मैं (गलत तरीके से?) मान रहा हूं कि वह पहले से ही यह जानता था। – Zar

20
<textarea cols='60' rows='8'>This is my statement one. 

This is my statement2</textarea> 

यह दिखाता है कि यह काम करता है: http://jsfiddle.net/trott/5vu28/

आप वास्तव में इस स्रोत फ़ाइल में एक पंक्ति पर होना चाहते हैं, तो आप एक लाइन फ़ीड और एक गाड़ी वापसी के लिए HTML चरित्र संदर्भ के रूप में @Bakudan से जवाब में दिखाया गया है डाल सकता है:

<textarea cols='60' rows='8'>This is my statement one.&#13;&#10;This is my statement2</textarea> 
5

इस कोशिश .. यह काम करता है:

<textarea id="test" cols='60' rows='8'>This is my statement one.&#10;This is my statement2</textarea> 


टैग के लिए जगह:

$("textarea#test").val(replace($("textarea#test").val(), "<br>", "&#10;"))); 
+3

इसकी वास्तव में $ ("textarea # test")। Val()। प्रतिस्थापित करें (/ \ n/g, " "); (यह नई लाइन की सभी घटनाओं को प्रतिस्थापित करेगा) – Symba

7

पाठ क्षेत्र के अंदर एक नई लाइन प्राप्त करने के लिए, वहाँ एक वास्तविक LINEBREAK डाल:

<textarea cols='60' rows='8'>This is my statement one. 
This is my statement2</textarea> 
17

जब दृश्य इंजन का उपयोग कर रहा String.fromCharCode(13, 10) उपयोगी पाया है। https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fromCharCode

यह वास्तविक न्यूलाइन अक्षरों के साथ एक स्ट्रिंग बनाता है और इसलिए दृश्य इंजन को बच निकलने वाले संस्करण की बजाय एक नई लाइन आउटपुट करने के लिए मजबूर करता है। उदाहरण के लिए: -:

viewHelper.js

exports.replaceNewline = function(input) { 
    var newline = String.fromCharCode(13, 10); 
    return input.replaceAll('\\n', newline); 
} 

EJS

<textarea><%- viewHelper.replaceNewline("Blah\nblah\nblah") %></textarea> 

रेंडर

<textarea>Blah 
blah 
blah</textarea> 
NodeJS EJS दृश्य इंजन का प्रयोग यह एक सरल उदाहरण है, जिसमें किसी भी \ N प्रतिस्थापित किया जाना चाहिए है

प्रतिस्थापित करें:

String.prototype.replaceAll = function (find, replace) { 
    var result = this; 
    do { 
     var split = result.split(find); 
     result = split.join(replace); 
    } while (split.length > 1); 
    return result; 
}; 
+1

नई लाइन = स्ट्रिंग।करकोड से (13, 10); एकमात्र चीज है जो रन टाइम के दौरान प्रोग्रामिंग के दौरान नई लाइन जोड़ने में मेरे लिए काम करती है। उस पर +1। –

+3

मैं सभी को बदलने के लिए शायद एक आसान तरीका सुझा सकता हूं: var regExp = new RegExp (ढूंढें, "जीआई"); str = str.replace (regExp, प्रतिस्थापित करें); –

+2

मैंने 's = s.replace (/ \\ n/g, String.fromCharCode (13, 10))' 'किया था। हालांकि यह जादू है। धन्यवाद। – Glycerine

2

परीक्षण के बहुत सारे के बाद, निम्न कोड Typescreipt

export function ReplaceNewline(input: string) { 
    var newline = String.fromCharCode(13, 10); 
    return ReplaceAll(input, "<br>", newline.toString()); 
} 
export function ReplaceAll(str, find, replace) { 
    return str.replace(new RegExp(find, 'g'), replace); 
} 
2

में मेरे लिए काम करता मुझे लगता है कि आप अलग अलग भाषाओं की वाक्य रचना को भ्रमित कर रहे हैं।

  • &#10; linefeed चरित्र एक एचटीएमएल स्ट्रिंग में शाब्दिक (ASCII 10 या की HtmlEncoded मूल्य) है। यह नहीं HTML में एक लाइन ब्रेक के रूप में प्रस्तुत करता है (नीचे नोट्स देखें)।

  • \nजावास्क्रिप्ट स्ट्रिंग में लाइनफीड वर्ण शाब्दिक (ASCII 10) है।

  • <br/> एचटीएमएल में एक लाइन ब्रेक है। कई अन्य तत्व, उदाहरण के लिए <p>, <div>, आदि कुछ शैलियों के साथ ओवरराइड किए जाने तक भी लाइन ब्रेक प्रस्तुत करते हैं। एचटीएमएल बारे में ध्यान देने

    T.innerText = "Position of LF: " + t.value.indexOf("\n"); 
     
    
     
    p1.innerHTML = t.value; 
     
    p2.innerHTML = t.value.replace("\n", "<br/>"); 
     
    p3.innerText = t.value.replace("\n", "<br/>");
    <textarea id="t">Line 1&#10;Line 2</textarea> 
     
    
     
    <p id='T'></p> 
     
    <p id='p1'></p> 
     
    <p id='p2'></p> 
     
    <p id='p3'></p>

    कुछ अंक:

उम्मीद है कि निम्नलिखित illustration यह स्पष्ट कर देगा

  • TEXTAREA तत्व की VALUE विशेषता नहीं करता एचटीएमएल
  • P तत्व एक स्थान के रूप में सभी संगत सफेद रिक्त स्थान (नई लाइनों सहित) प्रस्तुत करता है।
  • एलएफ चरित्र एचटीएमएल में एक नई लाइन या लाइन ब्रेक में प्रस्तुत नहीं करता है।
  • TEXTAREA एलएफ को एक नई लाइन के रूप में प्रस्तुत करता है।
0

आप पाठ क्षेत्र कहीं अपने पृष्ठ पर किसी और का मान का उपयोग करने और नई-पंक्तियों प्रतिपादन बारे में बात कर रहे हैं, तो मैं सीएसएस propperty पाया white-space: pre-wrap; बहुत अच्छी तरह से काम करने के लिए, और यह एक आसान समाधान है। शायद यह किसी की मदद करता है।

0

अन्य .replace() अन्य उत्तरों पर वर्णित पैटर्न का उपयोग करके कार्य नहीं किया। मेरे मामले के लिए काम करने वाला पैटर्न था:

var str = "Test\n\n\Test\n\Test"; 
str.replace(/\r\n|\r|\n/g,'&#13;&#10;'); 

// str: "Test&#13;&#10;&#13;&#10;Test&#13;&#10;Test" 
संबंधित मुद्दे