HTML 태그 제거기

웹페이지나 이메일 소스에 섞인 HTML 태그를 지우고 읽을 수 있는 텍스트만 뽑아냅니다. 링크 주소와 목록 구조는 선택해서 남길 수 있습니다.

입력 글자수: 0
결과 글자수: 0
제거한 태그: 0개
결과 줄 수: 0

이 도구가 하는 일, 순서대로

태그 제거는 단순히 꺾쇠 괄호를 지우는 일처럼 보이지만 실제로는 여러 단계가 있고, 순서가 결과를 바꿉니다. 이 도구는 다음 순서로 처리합니다.

  1. 주석·DOCTYPE 제거: <!-- ... --> 안의 문장은 화면에 보이지 않으므로 통째로 지웁니다.
  2. script·style·head 등 제거: 사용자에게 보이지 않는 코드 블록은 태그뿐 아니라 안의 내용까지 삭제합니다. 그렇지 않으면 자바스크립트나 CSS 규칙이 본문 사이에 그대로 섞입니다.
  3. 공백 정리(선택): HTML은 소스에서 줄바꿈과 들여쓰기가 몇 개든 화면에서는 공백 하나로 취급합니다. 이 규칙을 그대로 적용해 소스 줄바꿈이 결과에 끼어드는 것을 막습니다. <pre> 안은 예외로 원문을 보존합니다.
  4. 구조 보존(선택): <br>와 블록 요소의 닫는 태그를 줄바꿈으로, <li>를 "- "로, 표 셀 끝을 탭으로, 링크는 "글자 (주소)"로 바꿉니다.
  5. 남은 태그 삭제: 영문자나 슬래시로 시작하는 태그만 태그로 인정합니다. "3 < 5" 같은 본문 속 부등호는 태그가 아니므로 지워지지 않습니다. 속성값 안의 >(예: title="a>b")도 따옴표를 인식해 올바르게 처리합니다.
  6. 엔티티 변환: 마지막에 &amp; 같은 코드를 실제 문자로 바꿉니다. 이 순서가 중요합니다. 엔티티를 먼저 풀면 &lt;b&gt; 같은 "글자로서의 꺾쇠"가 태그로 오인되어 지워집니다.

자주 보는 HTML 엔티티

HTML에서 예약된 문자나 입력하기 어려운 문자는 &이름; 또는 &#숫자; 꼴로 적습니다. 이 도구는 이름 형태와 10진·16진 숫자 형태를 모두 원래 문자로 되돌립니다.

소스에 적힌 코드변환 결과설명
&amp;&앰퍼샌드
&lt;<작다(less than)
&gt;>크다(greater than)
&quot;"큰따옴표
&#39;'작은따옴표(숫자 코드)
&nbsp;(공백)줄바꿈 없는 공백(U+00A0)
&copy;©저작권 기호
&#x1F600;😀16진 숫자 코드로 쓴 이모지

&nbsp;는 일반 공백이 아닌 U+00A0 문자라서, 그대로 복사하면 검색이나 엑셀 함수에서 공백으로 인식되지 않아 곤란한 경우가 많습니다. 이 도구는 변환 결과에서 U+00A0을 일반 공백으로 바꿔 줍니다.

변환 예시 (직접 실행해 확인한 결과)

예시 1 — 줄바꿈과 엔티티

입력

<div>
  <p>가격: <b>1,200</b>원 &amp; 배송비 무료</p>
  <p>3 < 5 이므로 통과</p>
</div>

결과 (기본 옵션)

가격: 1,200원 & 배송비 무료
3 < 5 이므로 통과

두 번째 줄의 부등호가 살아남은 점에 주목하세요. 영문자로 시작하지 않는 꺾쇠는 태그로 보지 않습니다.

예시 2 — 링크와 목록 유지

입력

<ul><li><a href="https://example.com/a">소개</a></li><li>문의</li></ul>

"링크 주소 병기"와 "목록 불릿"을 켠 결과

- 소개 (https://example.com/a)
- 문의

옵션은 이렇게 고르세요

통계 칸의 "제거한 태그" 수는 주석과 script·style 블록을 걷어낸 뒤에 남은 태그를 센 값입니다. 이 숫자가 0인데 결과가 입력과 같다면 이미 순수 텍스트이거나, 꺾쇠가 엔티티(&lt;)로 적힌 상태입니다.

정규식 방식의 한계 — 알고 쓰기

이메일 HTML에서 특히 자주 생기는 일

마케팅 메일이나 알림 메일의 소스는 표(table) 안에 표를 겹쳐 넣고 이미지 간격을 맞추는 빈 셀, 숨김 미리보기 문구, 수십 줄의 인라인 스타일로 가득합니다. 이런 소스를 그대로 변환하면 빈 줄이 많이 남을 수 있으니 "연속된 빈 줄 정리"를 켜 두세요. 로고나 배너가 이미지로만 들어 있는 부분은 글자가 없어 결과에서 통째로 사라지는 것이 정상입니다. 또한 수신 거부 링크나 추적용 긴 주소가 필요 없다면 링크 병기를 끄고, 본문 문장만 남기는 편이 읽기 좋습니다.

보안 도구가 아닙니다

태그를 지운 결과를 웹 서비스에서 "안전한 입력값"으로 믿고 쓰면 안 됩니다. 사용자 입력의 악성 스크립트를 막는 일(XSS 방어)은 서버 쪽 검증과 출력 시 이스케이프, 검증된 새니타이저 라이브러리가 해야 합니다. 이 도구는 사람이 읽을 텍스트를 뽑아 내는 용도입니다. 입력한 HTML은 화면에 렌더링되거나 실행되지 않고 글자 상태로만 처리되며, 서버로 전송되지 않습니다.

이럴 때 활용하세요

자주 묻는 질문

왜 태그를 지워도 &amp; 같은 코드가 남아 있나요?

이 도구는 태그를 지운 뒤 엔티티를 문자로 되돌립니다. 그래도 남아 있다면 원문에 엔티티가 두 번 겹쳐 적힌 경우(&amp;amp;)입니다. 한 번 변환하면 &amp;가 남고 이는 원문에 그렇게 적혀 있다는 뜻이므로, 한 번 더 변환해 보세요.

스크립트나 스타일 코드도 함께 사라지나요?

네. script, style, noscript, template, head 블록은 내용까지 통째로 제거됩니다.

표(<table>)의 셀 구분은 어떻게 되나요?

기본값은 셀 사이에 구분 기호를 넣지 않고 행 단위로 줄만 바꿉니다. "표 셀 사이를 탭으로 구분"을 켜면 셀 끝마다 탭이 들어가 엑셀에 붙여 넣을 때 칸이 나뉩니다. 열 정렬이 필요한 텍스트 표라면 텍스트 표 정렬기를 함께 쓰세요.

붙여넣은 HTML이 실제로 실행되거나 서버로 전송되나요?

아닙니다. 입력한 HTML은 브라우저 안에서 텍스트로만 처리되며 실제 페이지에 렌더링되거나 스크립트가 실행되지 않고, 어디로도 전송되지 않습니다.

본문의 "3 < 5" 같은 부등호가 지워지지 않나요?

태그는 꺾쇠 바로 뒤에 영문자나 슬래시가 오는 경우만 인정하므로 부등호 뒤가 숫자나 공백이면 본문으로 남습니다. 다만 "a<b" 처럼 부등호 뒤에 영문자가 바로 오면 태그로 해석될 수 있습니다. HTML 규격상 본문의 <는 &lt;로 적어야 하기 때문입니다.

줄바꿈이 원본과 다르게 나옵니다.

"소스의 들여쓰기·줄바꿈을 공백 하나로" 옵션이 켜져 있으면 소스상의 줄바꿈은 무시하고 <br>과 블록 태그 위치에서만 줄을 바꿉니다. 브라우저 화면과 같은 모양입니다. 소스의 줄바꿈을 그대로 두려면 이 옵션을 끄세요.