charcode 32는 공백(Space)이고, 160은 NBSP(non-breaking space) 이다.

두 가지 모두 공백이지만, 같은 소스코드의 페이지라도 브라우저에 따라 컴포넌트 내의 문자열을 서로 다르게 가져온다. (ex: textarea 에서 문자열을 가져올 때)

익스플로러는 32로만 가져오는데, 크롬은 32와 160을 섞어서 가져오는 경우가 많은듯 하다.

 

따라서 두 가지 공백을 하나로 통일해주는 코드가 필요하다.

구글링 결과 크게 다음 3가지 코드가 있다.

(1) 32와 160을 모두 공백(32)으로 변경
return _text.replace(/\s+/g, " ");
    
(2) 160만 공백(32)으로 변경
return _text.replace(new RegExp(String.fromCharCode(160),"g"), " ");
    
(3) 160만 공백(32)으로 변경
return _text.replace(/\xA0/g, " ");

 

다음은 직접 작성한 예제소스.

로컬에 html 파일로 저장해서 실행하면 된다.

 

<html>
<head>
<script>
window.onload = function() {
    doTest();
}

 

function doTest() {
    alert("doTest");
    
    var beforeText = "대" + String.fromCharCode(32) + "학" + String.fromCharCode(160) + "교";
    var afterText = replaceNbsp(beforeText);
    
    alert("BEFORE : " + getCharCodeFromText(beforeText));
    alert("AFTER : " + getCharCodeFromText(afterText));
}

 

// 문자열을 캐릭터코드로 변경해서 리턴
function getCharCodeFromText(_text) {
    if (_text == null || _text == "") {
        return "empty";
    }

    var result = "";
    var len = _text.length;
    for (var i=0; i<len; i++) {
        if (result.length > 0) {
            result += "/";
        }
        result += _text.charCodeAt(i);
    }
    
    return result;
}

 

function replaceNbsp(_text) {
    if (_text == null || _text == "") {
        return "";
    }

    // (1) 32와 160을 모두 공백(32)으로 변경
    // return _text.replace(/\s+/g, " ");
    
    // (2) 160만 공백(32)으로 변경
    return _text.replace(new RegExp(String.fromCharCode(160),"g"), " ");
    
    // (3) 160만 공백(32)으로 변경
    // return _text.replace(/\xA0/g, " ");
}
</script>
</head>
<body>
</body>
</html>

 

번호 제목 글쓴이 날짜 조회 수
246 [Gemini] ajax 와 fetch 의 차이 황제낙엽 2025.01.04 3419
245 [검토 완료] 디바이스 카메라로 촬영한 사진을 서버에 업로드하기 샘플 황제낙엽 2024.11.21 3987
244 브라우저에서 이미지를 편집(crop 등) 할 수 있는 오픈소스 Cropper.js 황제낙엽 2024.11.16 3842
243 [ChatGPT] json data 의 정렬 [1] 황제낙엽 2024.07.23 3352
242 DOMContentLoaded 이벤트와 window.onload 이벤트 황제낙엽 2024.07.15 3669
241 fetch() 사용 예제들 황제낙엽 2024.07.09 3380
240 [Copilot] Vanilla JavaScript에서 외부 스크립트 파일에 정의된 함수들을 로드 황제낙엽 2024.06.21 3758
239 [Copilot] ES6 모듈(module) 문법 황제낙엽 2024.06.21 3805
238 [Copilot] JSON 객체 내부 데이터를 순회하면서 조회하는 코드 황제낙엽 2024.06.02 3270
237 [Copilot] JavaScript로 서버에 특정 값을 POST 방식으로 전달하고 응답을 기다리지 않고 바로 종료 황제낙엽 2024.05.31 3615
236 json 데이터 내의 변수명에 prefix 로 type 표현하기 황제낙엽 2024.04.15 3361
235 fetch() 함수 사용 예제 file 황제낙엽 2023.11.23 3605
234 현재 document 의 host 와 port 를 얻는 방법 황제낙엽 2023.10.03 4209
233 (Bard) FileReader 로 여러개의 파일을 read 하는 법 file 황제낙엽 2023.08.23 3660
232 How to build a file upload service with vanilla JavaScript file 황제낙엽 2023.08.22 3715
231 (Bard) JavaScript로 JSON 배열을 작성하는 방법 황제낙엽 2023.08.21 3672
230 모바일 브라우저에서 file input element 를 이용하여 여러장의 이미지를 서버에 전송하려 할때 [1] 황제낙엽 2023.08.21 3703
229 navigator.mediaDevices 황제낙엽 2023.08.21 3798
228 Barcode Detection API 황제낙엽 2023.08.06 3854
227 정규식을 이용한 이메일 검증 스크립트 file 황제낙엽 2023.06.25 2894