문자열의 모든 줄 바꿈을 어떻게 치환합니까?
요소?
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\n
2로 교체합니다.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
'programing' 카테고리의 다른 글
인쇄문이 없으면 루프가 다른 스레드에 의해 변경된 값을 볼 수 없습니다. (0) | 2023.01.28 |
---|---|
SyntaxError: 모듈 외부에서 Import 문을 사용할 수 없습니다. (0) | 2023.01.28 |
언제 java.lang을 잡을지.에러? (0) | 2023.01.28 |
로컬 JSON 데이터베이스를 MariaDB로 이행해야 합니까? (0) | 2023.01.28 |
vue, 소품으로서의 방출 vs 통과 기능 (0) | 2023.01.28 |