HTML 컨텐츠에서 태그를 제거하고 텍스트만 남기기
HTML 내용에서 태그를 제거하고 텍스트 내용만 재 가공해서 사용할 때 사용할 수 있는 함수입니다.
태그를 제거하면 중간에 줄바꿈과 공백, 탭과 같은 불필요한 문자들이 여러 개 겹쳐져 남게 됩니다.
이런 문자들까지 제거해야 텍스트 데이터를 사용할 수 있는 상태가 됩니다.
태그 제거
str.replace(/<\/?("[^"]*"|'[^']*'|[^>])*(>|$)/gi, "");
또는
str.replace(/(<([^>]+)>)/gi, "");
또는 블록 태그를 이용해 제거
const div = document.createElement('div');
div.innerHTML = str;
str = div.textContent || div.innerText || '';
줄바꿈 제거
txt.split("\n").join("");
또는 입력 필드를 이용해 제거
const input = document.createElement('input');
input.value = str;
str = input.value;
공백 제거
2개 이상 연달아 있는 공백을 한개로 줄임
string.replace(/ +/g, ' ');
2개 이상 연달아 있는 공백, 줄바꿈, 탭을 공백 한개로 줄임
string.replace(/\s\s+/g, ' ');
함수로 정의해서 사용하면 간편하게 HTML 내용에서 텍스트만 한줄로 뽑아서 사용할 수 있습니다.
function stripTags(str){
str = str.replace(/(<([^>]+)>)/gi, ""); // 태그 제거
str = str.replace(/\s\s+/g, ' '); // 연달아 있는 줄바꿈, 공백, 탭을 공백 1개로 줄임
return str;
}