पाठ क्षेत्र में नई लाइन


281
<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>

मैंने दोनों की कोशिश की, लेकिन html फ़ाइल रेंडर करते समय नई लाइन प्रतिबिंबित नहीं कर रही है। मैं उसे कैसे कर सकता हूँ?

जवाबों:


524

इसको आजमाओ:

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

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


2
@LittleAlien jsfiddle.net/v0y3xvpx/1 - ओपी प्रश्न पर आधारित उत्तर, स्पष्ट रूप से समस्या हल हो गई थी
बाकुदन

2
सिर्फ &#10;पार्स करने के लिए पर्याप्त नहीं है \n?
डग

क्या यह विंडोज बनाम मैकओएस पर निर्भर नहीं करता है कि क्या लाइन-फीड और कैरिज-रिटर्न दोनों पात्रों की आवश्यकता है, या यहां तक ​​कि पार्स भी सही है?
13 मई

1
@SeizeTheDay हाँ, लेकिन यह MacOS नहीं है - यह लिनक्स / बीएसडी बनाम विंडोज
बाकुदन है

@ बाकुडन ओह! मुझे लगता है कि MacOS, यूनिक्स-आधारित होने के नाते, अभी भी वह मुद्दा होगा। लेकिन आप निश्चित रूप से सही हैं, अंतर अधिक सामान्य है।
SeizeTheDay

28
<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>


27

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

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

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>

renders

<textarea>Blah
blah
blah</textarea>

सबको बदली करें:

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
The newline = String.fromCharCode (13, 10); केवल एक चीज है जो मेरे लिए रन टाइम के दौरान प्रोग्राम में नई लाइन जोड़ने का काम करती है। उस पर +1।
रोनेन राबिनोविच

3
मैं सभी को बदलने के लिए शायद एक सरल तरीका सुझाना चाहूंगा: var regExp = new RegExp (ढूँढें, "gi"); str = str.replace (regexp, की जगह);
रोनेन राबिनोविच

2
मैंने किया s = s.replace(/\\n/g, String.fromCharCode(13, 10) )। यह हालांकि जादू है। धन्यवाद।
ग्लिसरीन

22

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

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

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

  • <br/>HTML में एक लाइन ब्रेक है। कई अन्य तत्व, जैसे <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>

Html के बारे में ध्यान देने योग्य कुछ बातें:

  • तत्व का innerHTMLमान TEXTAREAHtml प्रदान नहीं करता है। निम्नलिखित का प्रयास करें: <textarea>A <a href='x'>link</a>.</textarea>देखने के लिए।
  • Pतत्व एक स्थान के रूप में सभी सन्निहित सफेद रिक्त स्थान (नई लाइनों सहित) बना देता है।
  • एलएफ चरित्र एचटीएमएल में एक नई लाइन या लाइन ब्रेक के लिए प्रस्तुत नहीं करता है।
  • TEXTAREAपाठ क्षेत्र बॉक्स के अंदर एक नई लाइन के रूप में वामो बना देता है।

1
इसके चेहरे पर यह पोस्ट जटिल लगती है, लेकिन वास्तव में इसमें बहुत सारी उपयोगी जानकारी होती है। यदि आप अपने आप को लाइनों जोड़ रहे हैं <textarea/>यह आपकी जरूरत का पद है!
मोरवेल

<br/>मैं क्या देख रहा था
जॉनी फाइव

14

CSS का उपयोग करके Textarea में कीवर्ड लाइन तोड़ें:

white-space: pre-wrap;

1
यह अधिक होना चाहिए
रॉडने सालिडेडो

आवश्यक परिणाम प्राप्त करने के लिए यह सबसे सरल विधि है, धन्यवाद @ सुरज
मोआज अतीक

यह उत्तर है
anvd

7

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

<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
इसका वास्तव में $ ("टेक्सारिया # टेस्ट")। वैल ()। प्रतिस्थापित (/ \ n / जी, "& # 10;"); (यह नई लाइन की सभी घटनाओं को बदल देगा)
क्लाउडीयू

7

पाठ-क्षेत्र के अंदर एक नई लाइन प्राप्त करने के लिए, वहां एक वास्तविक लाइन-ब्रेक लगाएं:

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


5

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


5
ठीक है, एक शाब्दिक \nया तो काम नहीं करेगा, यह एक वास्तविक newline होना चाहिए ।
ग्रेग हेविल

हां बिल्कुल। लेकिन मैं (गलत तरीके से?) यह मानते हुए कि वह पहले से ही यह जानता था।
जार

2

बहुत सारे परीक्षणों के बाद, निम्नलिखित कोड मेरे लिए टाइपक्रिप्ट में काम करता है

 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);
}

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"

0

T.innerText = "LF की स्थिति:" + t.value.indexOf ("\ n");

p3.innerText = t.value.replace("\n", "");

<textarea id="t">Line 1&#10;Line 2</textarea>

<p id='p3'></p>

हालांकि यह कोड प्रश्न का उत्तर दे सकता है, लेकिन यह कोड क्यों और / या इस प्रश्न के उत्तर के बारे में अतिरिक्त संदर्भ प्रदान करता है, इसके दीर्घकालिक मूल्य में सुधार करता है।
एलेक्स रियाबोव

-5

बस <br>
पूर्व का उपयोग करें :

<textarea>
blablablabla <br> kakakakakak <br> fafafafafaf 
</textarea>

परिणाम:
blablablabla
kakakakakak
fafafafafaf

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.