본문 바로가기
  • Monstera
개발공부/Javascript

[javascript] 개행문자(\n) 줄바꿈 처리 및 특정 단어 바꾸기

by 네모공장장 2019. 11. 4.

개행문자 바꾸기 

 

\n을 <br>로 변경

1. forEach

웬 forEach? 할수도 있지만 리액트(react) 프로젝트를 했었을때 줄바꿈을 forEach 혹은 map을 사용해서 했었다.

<body>
	<p>
		안녕하세요 \n줄바꿈 \n연습을 \n하고 \n있습니다.\n\n\n\n줄바꿈이 \n잘 \n 될까요?
	</p>
	<script>
		const body = document.querySelector('body');
		const pTag = document.querySelector('p');

		let text='';
		pTag.innerHTML.split('\\n').forEach((v)=>{
        	//pTag.innerHTML.split(/\\n/gi).forEach((v)=>{
			text += v+`<br>`;
		});

		pTag.innerHTML = text;
	</script>
</body>

 

2. replace + 정규식 

<body>
	<p>
		안녕하세요 \n줄바꿈 \n연습을 \n하고 \n있습니다.\n\n\n\n줄바꿈이 \n잘 \n 될까요?
	</p>
	<script>
		const body = document.querySelector('body');
		const pTag = document.querySelector('p');
		// let pInner = pTag.innerHTML;

		pTag.innerHTML = pTag.innerHTML.replace(/\\n/gi,'</br>');  
		//정규표현식을 넣어 줌

	</script>
</body>

하면서 코드의 마지막을 

pInner = pInner.replace(/\\n/gi,''); 라고 작성했는데 콘솔에만 바뀐값이 나오고 화면에는 출력이 안되었다.

pInner은 pTag.innerHTML를 담은 하나의 string값이기 때문에 변수 pInner의 값만 바뀌고

pTag의 실제 innerHTML값은 바뀌지 않아서였다.

 

3. split + join

<body>
	<p>
		안녕하세요 \n줄바꿈 \n연습을 \n하고 \n있습니다.\n\n\n\n줄바꿈이 \n잘 \n 될까요?
	</p>
	<script>
		const body = document.querySelector('body');
		const pTag = document.querySelector('p');

		pTag.innerHTML = pTag.innerHTML.split('\\n').join('<br>'); 
		// pTag.innerHTML = pTag.innerHTML.split(/\\n/gi).join('<br>');
	</script>
</body>

특정 단어 바꾸기

예시) 빨간색 -> 하늘색으로 변경

1. split + join 

<body>
	<p>
		내가 좋아하는 색은 빨간색이다.<br>
		그래서 물건을 살때면 빨간색으로 많이 구매를 한다.<br>
		다 같은 빨간색이지 않나? 라고 할수도 있지만 <br>
		빨간색도 저마다 조금씩 색의 느낌이 다르다.
	</p>
	<script>

		const body = document.querySelector('body');
		const pTag = document.querySelector('p');

		pTag.innerHTML = pTag.innerHTML.split('빨간색').join('하늘색'); 
		
	</script>
</body>

2. replace + 정규식

<body>
	<p>
		내가 좋아하는 색은 빨간색이다.<br>
		그래서 물건을 살때면 빨간색으로 많이 구매를 한다.<br>
		다 같은 빨간색이지 않나? 라고 할수도 있지만 <br>
		빨간색도 저마다 조금씩 색의 느낌이 다르다.
	</p>
	<script>

		const body = document.querySelector('body');
		const pTag = document.querySelector('p');

		pTag.innerHTML = pTag.innerHTML.replace(/빨간색/gi,'하늘색'); 

	</script>
</body>

 

 

 

 

 

반응형