sitelink1 | https://blog.naver.com/bb_/221449936369 |
---|---|
sitelink2 | |
sitelink3 | |
sitelink4 | |
extra_vars4 | |
extra_vars5 | |
extra_vars6 |
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>
function doTest() {
// 문자열을 캐릭터코드로 변경해서 리턴 var result = "";
function replaceNbsp(_text) { // (1) 32와 160을 모두 공백(32)으로 변경
|