💡 개발 이슈와 해결/📚 누군가를 위한 기록

[JavaScript] 문자 개행 처리 / 줄바꿈 처리 ('\n', 개행문자) / replace

Awesome Soo 2021. 12. 24. 14:47

 

개행문자 : 컴퓨터에서 줄바꿈을 나타내는 제어문자

 

개행이 \n으로 넘어오는 경우가 생깁니다.

이럴 경우에는 HTML 화면에 개행이 안되는 경우가 있는데요.

 

아래와 같이 해당 부분을 변경 하면 됩니다.

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

 

 


문제

데이터를 보여주는데, 줄바꿈이 되지 않아서 원인을 분석하였습니다.

원인

개발자 도구에 Console에

console.log(agentData);

로 확인해보니 사용하고자 하는 REMARK에 '\r\n\r\n' 가 들어가서 개행 처리가 필요했습니다.

 

해결

 

{agentData ? <>{agentData.REMARK}</> : <TextLoading />}

 

{agentData ? (
                    <>
                      {agentData.REMARK.replace(/(?:\r\n\r\n|\n\n)/g, '\r\n')
                        .split('\r\n')
                        .map(item => (
                          <p key={item}>
                            {item}
                          </p>
                        ))}
                    </>
                  ) : (
                    <TextLoading />
                  )}

.replace를 사용하고,

.split를 통해 문자열을 구분하였고,

.map을 통해 callback 함수를 각각의 요소에 대해 한번씩 순서대로 불러

그 함수의 반환값으로 새로운 배열을 만들어서 처리하였습니다.

 

String.prototype.replace()

 

String.prototype.replace() - JavaScript | MDN

replace() 메서드는 어떤 패턴에 일치하는 일부 또는 모든 부분이 교체된 새로운 문자열을 반환합니다. 그 패턴은 문자열이나 정규식(RegExp)이 될 수 있으며, 교체 문자열은 문자열이나 모든 매치

developer.mozilla.org

 

String.prototype.split()

 

String.prototype.split() - JavaScript | MDN

split() 메서드는 String 객체를 지정한 구분자를 이용하여 여러 개의 문자열로 나눕니다.

developer.mozilla.org

Array.prototype.map()

 

Array.prototype.map() - JavaScript | MDN

map() 메서드는 배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환합니다.

developer.mozilla.org

 

 

 

추가로...

[픽업 시]와 [반납 시]와의 세로 간격은 CSS의 선택자 :nth-child(2n) (= 두번째 마다 선택)를 사용해서 넓혀 줬습니다.

반응형