자바스크립트 문자열에서 공백이 아닌 공간은 어떻게 표현됩니까?
이것은 분명히 작동하지 않습니다.
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
다음 위치에서 사용할 수 있습니다.
다양한 문자 집합에 대한 문자 코드에 대한 자세한 내용은 다음 사이트를 참조하십시오.
그 것을 기억하라..text()
마크업을 제거하기 때문에 당신이 찾을 수 있을 거라고 생각하지 않습니다.
명백한 결과로
대답을 하게 된 것은...
var p = $('<p>').html(' ');
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
'sourcetip' 카테고리의 다른 글
epoll은 나사산으로 안전합니까? (0) | 2023.08.01 |
---|---|
ID 열 내에서 ASP.net Identity 2.0의 테이블 이름을 변경하는 방법은 무엇입니까? (0) | 2023.08.01 |
Linux OS에서 열려 있는 모든 소켓 확인 (0) | 2023.08.01 |
이벤트 트리 이벤트경변 이벤트 트리 이벤트경변 이벤트 트리 이벤트경변 (0) | 2023.08.01 |
Python에서 개체 목록 검색 (0) | 2023.07.27 |