특정 태그 제외하고 HTML태그를 코드로 변경하기

2022. 6. 17. 16:09언어/JSP&Javascript

DB에서 불러와 화면에 출력해줄 때 
데이터에 HTML 태그가 포함되어 있는 경우 화면UI에 문제가 생길 수 있다.
문제 방지를 위해 특수문자를 코드로 변환해줘야한다
 
모든 태그를 수정하고 싶을때 아래 코드를 사용하면 된다.

val.replace(/</gi, "&lt;" );

 
만약 특정 태그(em태그)는 살리고 싶으면 아래 코드를 사용하면 된다.

val.replace(/<(?!em>)(?!\/em>)/gi, "&lt;" );

 
예제

var val = "<h4>태그</h4> 테스트 <em>test</em> 입니다.";

var result1 = val.replace(/</gi, "&lt;" );
var result2 = val.replace(/<(?!em>)(?!\/em>)/gi, "&lt;" );

result1 결과

<>HTML 삽입
미리보기할 수 없는 소스

result2 결과

<>HTML 삽입
미리보기할 수 없는 소스

 
 
result2의 경우 em태그의 짝이 맞지 않을 경우도 생각하여 개수를 확인해주는 것이 좋다.

val.match(/<em>/gi );