programing

문자열의 모든 줄 바꿈을 어떻게 치환합니까?문자열의 모든 줄 바꿈을 어떻게 치환합니까?요소?요소?

shortcode 2023. 1. 28. 09:48
반응형

문자열의 모든 줄 바꿈을 어떻게 치환합니까?
요소?

JavaScript를 사용하여 값에서 줄 바꿈을 읽고 줄 바꿈을 모두 로 바꾸려면 어떻게 해야 합니까?<br />요소?

예:

PHP에서 전달된 변수는 다음과 같습니다.

  "This is man.

     Man like dog.
     Man like to drink.

     Man is the king."

JavaScript에 의해 변환된 결과는 다음과 같습니다.

  "This is man<br /><br />Man like dog.<br />Man like to drink.<br /><br />Man is the king."

그러면 모든 반품이 HTML로 변환됩니다.

str = str.replace(/(?:\r\n|\r|\n)/g, '<br>');

무슨 뜻인지 궁금할까봐.이것은 비포획 그룹이라고 불립니다.즉, 괄호 내의 regex 그룹은 나중에 참조할 수 있도록 메모리에 저장되지 않습니다.자세한 내용은 다음 스레드를 참조하십시오.
https://stackoverflow.com/a/11530881/5042169https://stackoverflow.com/a/36524555/5042169

회선 브레이크만을 표시하는 경우는, CSS 를 사용해 이것을 실시할 수 있습니다.

<div style="white-space: pre-line">Some test
with linebreaks</div>

Jsfiddle : https://jsfiddle.net/5bvtL6do/2/

주의: 코드 포맷 및 들여쓰기에 주의하십시오.white-space: pre-line모든 줄바꿈이 표시됩니다(텍스트 뒤의 마지막 줄바꿈은 제외).

regex 미포함

str = str.split("\n").join("<br />");

이것은 텍스트 영역으로부터의 입력에 유효합니다.

str.replace(new RegExp('\r?\n','g'), '<br />');

만약 받아들여진 답이 당신에게 맞지 않는다면, 당신은 시도할 수 있습니다.

str.replace(new RegExp('\n','g'), '<br />')

그것은 나에게 효과가 있었다.

시스템에 관계없이:

my_multiline_text.replace(/$/mg,'<br>');

스크립트 주입 공격으로부터 보호하기 위해 나머지 텍스트를 인코딩하는 것도 중요합니다.

function insertTextWithLineBreaks(text, targetElement) {
    var textWithNormalizedLineBreaks = text.replace('\r\n', '\n');
    var textParts = textWithNormalizedLineBreaks.split('\n');

    for (var i = 0; i < textParts.length; i++) {
        targetElement.appendChild(document.createTextNode(textParts[i]));
        if (i < textParts.length - 1) {
            targetElement.appendChild(document.createElement('br'));
        }
    }
}

TextBox에서 값을 얻었을 때 이 방법이 효과가 있었습니다.

string.replace(/\n|\r\n|\r/g, '<br/>');

가장 일반적인 EOL 스타일을 지원하는 최단 코드 \r,\n,\r\n및 HTML5 사용<br>:

s.replace(/\r?\n|\r/g, '<br>')

최대 2개를 허용하고 싶은 분들을 위해<br>를 연속해서 사용할 수 있습니다.

let text = text.replace(/(\r?\n){2,}/g, '<br><br>');
text = text.replace(/(\r?\n)/g, '<br>');

첫 번째 줄:검색(Search(검색)\n또는\r\n그 중 적어도 2개가 연속된 경우, 예를 들어,\n\n\n\n2로 교체합니다.br

두 번째 줄:모든 단일 검색\r\n또는\n로 대체한다.<br>

변수를 PHP에서 전송하면 전송하기 전에 다음과 같이 얻을 수 있습니다.

$string=nl2br($string);

모든 새 라인을 중단으로 바꿉니다.

str = str.replace(/\n/g, '<br>')

모든 새 선을 단일 중단선으로 바꾸려는 경우

str = str.replace(/\n*\n/g, '<br>')

Regex에 대한 자세한 내용은 https://dl.icewarp.com/online_help/203030104.htm을 참조하십시오.이것에 의해, 항상 도움이 됩니다.

구체적인 질문에 대한 답변은 없지만, 이것이 누군가에게 도움이 될 것이라고 확신합니다.

JavaScript를 사용하여 웹 페이지에 렌더링하고 싶은 PHP 출력(아마도 Ajax 요청의 결과)이 있고 공백과 줄 바꿈을 유지하고 싶은 경우 텍스트는 텍스트 안에 포함시키는 것을 고려하십시오.<pre></pre> 삭제:

var text_with_line_breaks = retrieve_some_text_from_php();
var element = document.querySelectorAll('#output');
element.innerHTML = '<pre>' + text_with_line_breaks + '</pre>';

컨트롤러에서 전달된 PHP 구성을 가지고 있습니다.(Laravel)

예: PHP 구성

'TEXT_MESSAGE' => 'From:Us\nUser: Call (1800) 999-9999\nuserID: %s'

그 후 javascript에서 es6 reduce를 사용합니다.내가 두 개를 가져야 한다는 것을 알린다.\\또는 출력이 올바르게 교환되지 않았습니다. function reduce와 관련된 .

  • previousValue(콜백 fn에 대한 이전 호출에서 생성된 값)
  • currentValue(현재 요소의 값)
  • currentIndex 옵션
  • array(트래버스할 배열) 옵션
//p is previousVal
//c is currentVal
String.prototype.newLineReplace = function(){
    return [...arguments].reduce((p,c) => p.replace(/\\n/g,c), this);
}

제 대본에서 사용한 방법은 이렇습니다.

<script type="text/javascript">var config = @json($config);</script>

config.TEXT_MESSAGE.newLineReplace("<br />")

물론 javascript sring으로 불러도 되는데...

let a = 'From:Us\nUser: Call (1800) 999-9999\nuserID: %s'
var newA = a.newLineReplace("<br />")

//output
'From:Us<br />User: Call (1800) 999-9999<br />userID: %s'

언급URL : https://stackoverflow.com/questions/784539/how-do-i-replace-all-line-breaks-in-a-string-with-br-elements

반응형