是否可以测试中断空间?
Is it possible to test for breaking spaces?
我正在尝试按行解析最少的标记文本。目前我有一个逐字母解析的 for 循环。请看下面的代码:
正文:
<element id="myE">
This is some text that
represents accurately the way I
have written my html
file.
</element>
代码:
var list = document.getElementById("myE").innerHTML;
var tallie = 0;
for (i=1;i<list.length;i++) {
if (/*list[i] == " "*/ true) {
list += 1;
console.log(list[i]);
}
}
console.log(tallie);
正如预期的那样,元素中嵌入的文本呈现在 DOM 中,就好像它是一个连续的、格式正确的字符串一样。但我发现控制台可以识别不间断 space 和新行之间的区别。其中 " "
和
"
"
分别代表两者
既然控制台似乎知道差异,似乎应该有一种方法来测试差异。如果您解锁注释条件,它将开始测试非中断 spaces。我认为还有另一种方法可以使用字符编码字符串(不是  ,另一种)来做到这一点。那么期望能够找到中断 space 的字符代码似乎是合理的。可惜我找不到。
长话短说,我怎样才能实现对 html 文件的真正逐行解析?
换行符用\n
编码。有时您还会发现回车 return 和换行符 \r\n
的组合(请参阅维基百科上的换行符)。这些不应与 Non Breaking Space
或  
混淆,如果您希望浏览器不自动换行但仍显示 space 或者如果您想要浏览器不要将多个 space 折叠在一起。
我正在尝试按行解析最少的标记文本。目前我有一个逐字母解析的 for 循环。请看下面的代码:
正文:
<element id="myE">
This is some text that
represents accurately the way I
have written my html
file.
</element>
代码:
var list = document.getElementById("myE").innerHTML;
var tallie = 0;
for (i=1;i<list.length;i++) {
if (/*list[i] == " "*/ true) {
list += 1;
console.log(list[i]);
}
}
console.log(tallie);
正如预期的那样,元素中嵌入的文本呈现在 DOM 中,就好像它是一个连续的、格式正确的字符串一样。但我发现控制台可以识别不间断 space 和新行之间的区别。其中 " "
和
"
"
分别代表两者
既然控制台似乎知道差异,似乎应该有一种方法来测试差异。如果您解锁注释条件,它将开始测试非中断 spaces。我认为还有另一种方法可以使用字符编码字符串(不是  ,另一种)来做到这一点。那么期望能够找到中断 space 的字符代码似乎是合理的。可惜我找不到。
长话短说,我怎样才能实现对 html 文件的真正逐行解析?
换行符用\n
编码。有时您还会发现回车 return 和换行符 \r\n
的组合(请参阅维基百科上的换行符)。这些不应与 Non Breaking Space
或  
混淆,如果您希望浏览器不自动换行但仍显示 space 或者如果您想要浏览器不要将多个 space 折叠在一起。