sourcetip

자바스크립트 문자열에서 공백이 아닌 공간은 어떻게 표현됩니까?

fileupload 2023. 8. 1. 20:42
반응형

자바스크립트 문자열에서 공백이 아닌 공간은 어떻게 표현됩니까?

이것은 분명히 작동하지 않습니다.

X = $td.text();
if (X == ' ') {
  X = '';
}

깨지지 않는 공간이나 자바스크립트가 싫어하는 앰퍼샌드에 관한 것이 있습니까?

 HTML 엔티티입니다.할 때.text()모든 HTML 엔티티는 문자 값으로 디코딩됩니다.

엔티티를 사용하여 비교하는 대신 실제 원시 문자를 사용하여 비교합니다.

var x = td.text();
if (x == '\xa0') { // Non-breakable space is char 0xa0 (160 dec)
  x = '';
}

또는 문자 코드에서 Javascript 이스케이프 형식으로 수동으로 문자를 생성할 수도 있습니다.

var x = td.text();
if (x == String.fromCharCode(160)) { // Non-breakable space is char 160
  x = '';
}

에 대한 자세한 정보String.fromCharCode다음 위치에서 사용할 수 있습니다.

CharCode에서 - MDC 문서 센터

다양한 문자 집합에 대한 문자 코드에 대한 자세한 내용은 다음 사이트를 참조하십시오.

Windows-1252 문자 집합
UTF-8 문자 집합

그 것을 기억하라..text()마크업을 제거하기 때문에 당신이 찾을 수 있을 거라고 생각하지 않습니다. 명백한 결과로

대답을 하게 된 것은...

var p = $('<p>').html('&nbsp;');
if (p.text() == String.fromCharCode(160) && p.text() == '\xA0')
    alert('Character 160');

대신 마크업에 해당하는 ASCII가 반환되므로 경고를 표시합니다.

해당 엔터티는 브라우저가 페이지를 렌더링할 때 나타내는 차트로 변환됩니다.JS(jQuery)는 렌더링된 페이지를 읽으므로 이러한 텍스트 시퀀스가 발생하지 않습니다.이러한 상황이 발생할 수 있는 유일한 방법은 엔티티를 이중으로 인코딩하는 것입니다.

다음에 대한 jQuery 문서text()말한다

브라우저마다 HTML 파서가 다르기 때문에 반환되는 텍스트는 줄 바꿈 및 기타 공백에서 다를 수 있습니다.

제가 쓰겠습니다.$td.html()대신.

언급URL : https://stackoverflow.com/questions/5237989/how-is-a-non-breaking-space-represented-in-a-javascript-string

반응형