질문 : JavaScript 문자열 개행 문자?
\n
모든 플랫폼에서 자바 스크립트의 범용 개행 문자 시퀀스입니까? 그렇지 않은 경우 현재 환경의 캐릭터를 어떻게 결정합니까?
HTML 개행 요소 ( <BR/>
)에 대해 묻지 않습니다. JavaScript 문자열 내에서 사용되는 개행 문자 시퀀스에 대해 묻습니다.
답변
이 바보 같은 JavaScript를 사용하여 몇 가지 브라우저를 테스트했습니다.
function log_newline(msg, test_value) {
if (!test_value) {
test_value = document.getElementById('test').value;
}
console.log(msg + ': ' + (test_value.match(/\r/) ? 'CR' : '')
+ ' ' + (test_value.match(/\n/) ? 'LF' : ''));
}
log_newline('HTML source');
log_newline('JS string', "foo\nbar");
log_newline('JS template literal', `bar
baz`);
<textarea id="test" name="test">
</textarea>
Windows의 IE8 및 Opera 9는 \r\n
합니다. 내가 테스트 한 다른 모든 브라우저 (Windows의 Safari 4 및 Firefox 3.5, Linux의 Firefox 3.0)는 \n
사용합니다. \n
잘 처리 할 수 있지만 IE와 Opera는 내부적으로 다시 \r\n
Line endings in Javascript 라는 세부 정보가 포함 된 SitePoint 기사가 있습니다.
또한 이것은 HTML 파일 자체의 실제 줄 끝과는 별개입니다 ( \n
및 \r\n
모두 동일한 결과를 제공함).
양식을 제출할 때 모든 브라우저는 URL 인코딩에서 %0D%0A
이를 확인하려면 data:text/html,<form><textarea name="foo">foo%0abar</textarea><input type="submit"></form>
등을로드하고 제출 버튼을 누릅니다. (일부 브라우저는 제출 된 페이지의로드를 차단하지만 콘솔에서 URL로 인코딩 된 양식 값을 볼 수 있습니다.)
그래도 결정을 많이 할 필요는 없다고 생각합니다. 줄 바꿈으로 텍스트를 나누고 싶다면 다음과 같이 할 수 있습니다.
lines = foo.value.split(/\r\n|\r|\n/g);
출처 : https://stackoverflow.com/questions/1155678/javascript-string-newline-character
'프로그래밍 언어 > HTML,CSS,JS' 카테고리의 다른 글
HTML 레이아웃에 테이블을 사용하지 않는 이유 (0) | 2021.07.27 |
---|---|
JavaScript .prototype가 작동하는 방식 (0) | 2021.07.27 |
React.js의 상태 배열 수정 (0) | 2021.07.27 |
JavaScript에서 스택과 큐를 구현하는 방법 (0) | 2021.07.27 |
CSS를 통해 PNG 이미지의 색상을 변경하는 방법 (0) | 2021.07.23 |