상세 컨텐츠

본문 제목

jQuery HTML Character Entity 특수문자 치환 &

programing/jQuery&HTML5

by ZelKun 2019. 11. 30. 21:51

본문

반응형

form에서 '<', '>', '(', ')' 등등 특수문자를  servlet으로 전달받는데

이상하게 화면에서 &amp;#40; 으로 변경되서 보이는게 아닌가 아마도 파라미터 전달과정에서 encode 된것 같은데

문제는 2중으로... 되서 브라우져에서 보게되면 &#40; 으로 표시가되서 보인다는것이다

 

브라우저에서 정상적으로 보이려면 &#40;  정도는 되야 해석해서 보여줄텐데 말이다

jsp/servlet 단에서는 StringEscapeUtils 로 처리하면 되는데 화면에서 바로 처리해야 되니

jQuery html 코드를 이용해서 처리하기로 했다

참고: [programing/JAVA&JSP&SERVLET&SPRING] - JSP/SERVELT HTML Character Entity 특수문자 치환 StringEscapeUtils & 처리

 

물론 replace 를 사용해서 하나하나 처리해도 되긴할텐데

모든 특수문자를 처리하려면 코드표를 붙잡고 몇시간을 투자해도 모자를 테니

편하게 가주자

 

jQuery("selector").html(HTML문자열) 을 이용하면 엘레멘트에 html코드를 넣을수 있는데

이를 이용한것이다

var someHtmlString = '이건 &amp;#40;중요&amp;#41;';
console.log(someHtmlString)
//이건 &amp;#40;중요&amp;#41;

console.log(jQuery("<div>").html(someHtmlString).text());
//'이건 &#40;중요&#41;'

 

https://jsfiddle.net/zelkun/kmbL642x/

 

Edit fiddle - JSFiddle

 

jsfiddle.net

 

사실 변경될 태그의 id를 사용해도 되긴할텐데 변수로 받아서 변경하기위해 

<div> 를 selector로 사용하고 html 문자로 디코딩 하고 이를 text로 읽어드린것이다

 

브라우저에서 해석을 해서 특수문자를 치환을 해주니 한번만 해줘도 된다

 

반응형

관련글 더보기

댓글 영역