HTML 텍스트 영역에 줄 바꿈을 추가하는 방법은 무엇입니까?


답변:


265

줄 바꿈 ( \n\r?)이 HTML <br/>태그 와 동일하지 않다는 사실에서 문제가 발생 합니다.

var text = document.forms[0].txt.value;
text = text.replace(/\r?\n/g, '<br />');

최신 정보

많은 의견과 내 경험에 따르면이 <br> 솔루션이 예상대로 작동하지 않는다는 것을 보여 주었 으므로 여기에 textarea'\ r \ n'을 사용하여 새 줄을 추가하는 방법의 예가 있습니다.

function log(text) {
    var txtArea ;

    txtArea = document.getElementById("txtDebug") ;
    txtArea.value +=  text + '\r\n';
}

나는 이것이 너무나 대중적인 대답이 잘못되었거나 불완전하기 때문에 새로운 질문이 아닌 편집을하기로 결정했습니다.


7
이것은 나에게도 효과적입니다. jQuery에서 다음과 같이 할 수 있습니다 : $ ( '# caption'). html ($ ( '# caption'). text (). replace (/ \ n \ r? / g, '<br />')) ;
DavGarcia

2
라인 브레이크는 정규 표현식해야 /(\r\n|\n|\r)/gm textfixer.com/tutorials/javascript-line-breaks.php
tothemario

3
올바른 정규 표현식에는 /\r\n?|\n/g캡처가 없으며 여러 줄이 없습니다.
aMarCruz

5
용의자 <br>가 잘못되었습니다. A의 텍스트 영역에서 보편적 인 줄 바꿈 원하는 \r\n. 예를 들어 UC 브라우저는 텍스트 영역에서 <br> 및 \ n을 무시합니다. HTML 텍스트 영역에 줄 바꿈 추가를 참조 하십시오 .
Bob Stein

2
텍스트 영역 내에서 <br>을 (를) 사용하는 것이 작동하지 않습니다. 적어도 Chrome에서는 테스트하지 않았습니다. \ n 사용하면 작동하는 것 같습니다. 텍스트를 순수한 html로, 즉 입력 요소 외부에 삽입하려면 <br>를 사용하십시오.
Snorvarg

24

일반 자바 스크립트를 사용하고 텍스트 영역 값에 문자열을 할당 해야하는 경우

 document.getElementById("textareaid").value='texthere\\\ntexttext'.

당신은 교체해야 \n< br >\\\n

그렇지 않으면 Uncaught SyntaxError: Unexpected token ILLEGAL모든 브라우저에서 제공 됩니다.


18

어쩌면 누군가 이것이 유용하다고 생각할 수도 있습니다.

서버 변수에서 javascript 변수로 전달 된 줄 바꿈에 문제가 있었고 javascript가 텍스트 영역에 기록했습니다 (nockout.js 값 바인딩 사용).

해결책은 새로운 줄을 두 번 탈출했습니다.

orginal.Replace("\r\n", "\\r\\n")

단일 이스케이프 문자로 자바 스크립트가 구문 분석되지 않았기 때문에 서버 측에서.


"\\ n"을 사용하면 Windows에서 작동하며 Linux 시스템에서는 제대로 작동한다고 가정합니다.
Samih A


6

자신의 페이지 안에 텍스트를 표시하려면 <pre>태그를 사용할 수 있습니다 .

document.querySelector('textarea').addEventListener('keyup', function() {
  document.querySelector('pre').innerText = this.value;
});
<textarea placeholder="type text here"></textarea>
<pre style="font-family: inherits">
The
new lines will
be respected
      and spaces too
</pre>


3

새 줄은 브라우저의 공백 일 뿐이며 일반적인 공백 ( "")과 다른 것으로 취급되지 않습니다. 새 줄을 얻으려면 <BR />요소 를 삽입해야합니다 .

문제를 해결하기위한 또 다른 시도 : 텍스트를 텍스트 영역에 입력 한 다음 단추 뒤에 JavaScript를 추가하여 보이지 않는 문자를 읽을 수있는 문자로 변환하고 결과를로 덤프하십시오 DIV. 브라우저가 원하는 것을 알려줍니다.


3

ID가 #infoartist 인 textarea가 있습니다 .

<textarea id="infoartist" ng-show="dForm" style="width: 100%;" placeholder="Tell your contacts and collectors about yourself."></textarea>

자바 스크립트 코드에서 텍스트 영역의 값을 가져 와서 새 줄 (\ n \ r) <br />을 다음과 같이 태그로 대체합니다 .

var text = document.getElementById("infoartist").value;
text = text.replace(/\r?\n/g, '<br />');

따라서 jquery를 사용하는 경우 (나 같은) :

var text = $("#infoartist").val();
text = text.replace(/\r?\n/g, '<br />');

그것이 당신을 도왔기를 바랍니다. :-)



0

여기 내가했던 같은 문제에 대해 한 일이 있습니다.

jsp의 다음 페이지로 텍스트를 전달할 때 다음과 같은 것을 읽는 대신 텍스트 영역으로 읽습니다.

그래서 원하는대로 출력이 나왔습니다. 다른 속성의 경우 다음과 같이 사용할 수 있습니다.

<textarea style="background-color: white; border: none; width:660px;font-family: Arial, Helvetica, sans-serif; font-size:1.0em; resize:none;" name="text" cols="75" rows="15" readonly="readonly" ><s:property value="%{text}"/></textarea>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.