개발여행의 블로그
[JavaScript] textarea text 줄바꿈 처리 / 개행 처리 / shift+enter 본문
728x90
Javascript로 간단한 채팅을 구현하는 중,
textarea 입력창에서 shift+enter 입력 시 줄 바꿈 되어 출력되는 기능을 추가했다.
( textarea는 input text와 다르게 여러 줄의 문자열을 입력할 수 있다. )
button 클릭과 textarea enter키 입력 시 채팅 내용이 입력되도록 이벤트 처리를 먼저 해두었다.
이벤트 처리 부분
const sendBtnElement = document.querySelector(".btn-send");
const textareaElement = document.querySelector(".textarea");
sendBtnElement.addEventListener("click", () => { sendMessage() });
textareaElement.addEventListener("keyup", (e) => {
if (e.keyCode === 13) {
if (!e.shiftKey) {
sendMessage();
}
}
});
해당 textarea value 값의 줄바꿈을 <br> 태그로 변경하는 코드를 추가했다.
/(\n|\r\n)/g 은 개행의 정규식이다.
let text = document.querySelector(".textarea").value;
text = text.replaceAll(/(\n|\r\n)/g, "<br>");
String.prototype.replaceAll()
The replaceAll() method returns a new string with all matches of a pattern replaced by a replacement. The pattern can be a string or a RegExp, and the replacement can be a string or a function to be called for each match.
출처 - MDN
메시지를 추가하면 위 화면과 같이 <br> 태그가 잘 적용되어 보인다.
728x90
'개발 > javaScript' 카테고리의 다른 글
[JavaScript] 실행 컨텍스트 Execution Context (1) (0) | 2021.09.01 |
---|---|
[JavaScript] 생성자 함수 (0) | 2021.08.27 |
[JavaScript] Method Chaining (메서드 체이닝) (0) | 2021.08.26 |
[javaScript] this (0) | 2021.08.24 |
[JavaScript] addEventListener 여러개 등록하기 / 멀티 addEventListener / forEach 활용 / querySelectorAll 여러 요소 선택 (0) | 2021.07.30 |
Comments