2018. 5. 24. 16:24



DB에서 값을 가져와서, 수정 페이지를 만드는데, input value에 값을 넣는데,


데이터에 "(큰따옴표)  '(작은따옴표) 같은게 있으면, 앞에서 value를 잘라 버려서, 따옴표는 특수문자표를 써줘야한다.


&quot 나 &#39 같이 써줘야한다.


그래서 스크립트에 아에 펑션을 넣어주고 값에 써주면 된다.



var entityMap = {
  '&': '&',
  '<': '&lt;',
  '>': '&gt;',
  '"': '&quot;',
  "'": '&#39;',
  '/': '&#x2F;',
  '`': '&#x60;',
  '=': '&#x3D;'
};

function escapeHtml (string) {
  return String(string).replace(/[&<>"'`=\/]/g, function (s) {
    return entityMap[s];
  });
}


출처 : https://code.i-harness.com/ko/q/60f0



원하는 값에. 예로


var _name = 내 이름은 "Tyson"입니다.


<input type="text" value="escapeHtml(_name)">


위처럼 써주면, 


내 이름은 &quot;Tyson&quot;입니다.


위처럼 들어가서 제대로 보인다.


처음에는 


내 이름은 "     <= 여기에서 잘렸다.


value값이 "를 마지막으로 인식해서였다.



===


자바스크립트에서 하는 방법이고, java jstl에서는 

fn:escapeXml

을 쓰면 된다.

jstl 에서 문자열 처리법 : 

http://tyson.tistory.com/129






Posted by Tyson