반응형
iframe innerText 공백 non-breaking space 처리
iframe 내의 텍스트를 DB에 저장 할 때 innerText로 뽑아서 저장을 하면
공백이 이상한 문자로 저장되는 경우가 있습니다.
HTML 요소 내 공백은 $nbsp; (none-breaking space) 로 표현되며 이는 공백 처럼 보이지만
DB에 저장할 때 이상한 문자가 삽입됩니다.
그래서 innerText로 뽑은 텍스트 내 none-breaking space를 치환 해주어야 합니다.
우선 받은 텍스트를 유니코드로 치환해 줍니다.
let ctnt = encodeURI(frame.innerText);
유니코드에서 none-breaking space는 %C2%A0 입니다.
이를 실제 space 로 치환해 줍니다.
let ctnt = encodeURI(frame.innerText).replace(/%C2%A0/gi, ' ');
이제 none-breaking space를 치환한 유니코드를 디코드 해줍니다.
ctnt = decodeURI(ctnt);
이제 원하는, none-breaking space 가 space로 치환된 텍스트를 확인할 수 있습니다.
반응형
'Programing > JavaScript' 카테고리의 다른 글
주니어 개발자가 들이면 좋은 습관! (0) | 2021.10.19 |
---|---|
javascript Template literals (Template strings) 문자열 병합 (0) | 2021.10.19 |
javascript .focus() not working 포커스 함수 동작 하지 않는 이유 (0) | 2021.10.05 |
javascript 수선의 발 구하는 방법, 직선과 점의 가장 가까운 점 구하는 방법, 폴리라인과 마커간 최단거리 (0) | 2021.09.28 |
카카오 지도 보이는 영역 내 마커만 표출 방법 (0) | 2021.09.02 |
댓글