如何在JavaScript字符串中表示不间断空格?
这显然不起作用:如何在JavaScript字符串中表示不间断空格?,javascript,jquery,Javascript,Jquery,这显然不起作用: X = $td.text(); if (X == ' ') { X = ''; } JavaScript不喜欢不间断空格或符号吗?是一个HTML实体。执行.text()时,所有HTML实体都将解码为其字符值 使用实际原始字符进行比较,而不是使用实体进行比较: var x = td.text(); if (x == '\xa0') { // Non-breakable space is char 0xa0 (160 dec) x = ''; } 或者,您
X = $td.text();
if (X == ' ') {
X = '';
}
JavaScript不喜欢不间断空格或符号吗?
是一个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
的更多信息,请访问:
有关不同字符集的字符代码的详细信息,请参见:
浏览器呈现页面时,该实体将转换为它表示的字符。JS(jQuery)读取呈现的页面,因此不会遇到这样的文本序列。它遇到这种情况的唯一方法是对实体进行双重编码。请记住,
.text()
会去掉标记,因此我不相信您会在非标记结果中找到
对答案的回答
var p=$(“”).html(“”);
if(p.text()==String.fromCharCode(160)&&p.text()='\xA0')
警报(“字符160”);
显示警报,因为返回的是与标记等效的ASCII。用于
text()
的jQuery文档显示
由于HTML解析器的变化
在不同的浏览器中,文本
返回的内容可能因换行和换行而异
其他空白
我会改用
$td.html()
。不工作怎么办?那么你在用X做什么?哦,如果我说X=$td.html(),它会工作的。记住.text()
会去掉标记,因此我不相信你会在非标记结果中找到
。我可能错了,但是text()不会扩展html实体吗?@Brad-你应该回答这个问题=使用jQuery我们可以看到,$(“”).text().charCodeAt()
给出了160
(unicode表示nbsp)@cobbal:非常正确。。。实际上这是更简单的方法。哇。这个答案太复杂了,一定是正确的!(我和JavaScript就像油和水)。但是,如果我被猛烈地震动,我们可能会混合在一起。普通的空格正在被打破,所以它是“\x20”,但最好使用“”。这会将html标记添加到页面的标记中。例如,字符串“”将是html元素。
var p = $('<p>').html(' ');
if (p.text() == String.fromCharCode(160) && p.text() == '\xA0')
alert('Character 160');