【发布时间】:2016-12-23 00:17:34
【问题描述】:
我正在尝试逐行解析最小的标记文本。目前我有一个逐字母解析的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 中呈现,就好像它是一个连续的、格式正确的字符串。但是我发现控制台可以识别不间断空格和新行之间的区别。其中" " 和
"
"
分别代表两者。
由于控制台似乎知道差异,似乎应该有一种方法来测试差异。如果您解锁注释条件,它将开始测试不间断空格。我认为还有另一种方法可以使用字符编码字符串(不是  ,另一种)。期望能够找到中断空格的字符代码似乎是合理的。可惜我找不到。
长话短说,如何实现真正的逐行解析html文件?
【问题讨论】:
-
'\n'是换行符。这就是你要找的吗? -
你不能换行依赖于许多细节,屏幕大小,容器大小,字体大小,缩放等。你看到的新行我可能不会。
-
“但在控制台中,内联空格显示为不间断空格
" "” – 如果您只能看到" ",那么您怎么知道那是正常的还是不间断的空间……? -
如果你想逐行解析,你不应该有 var list=document.getElementById("myE").innerHTML.split("\n"); ?
-
我的意思是,由于显示的代码只为您提供了 html 标签的所有内容的长度,您不妨跳过“循环以逐行解析部分”,只需替换您的所有内容不想统计。如果我们知道为什么您需要逐行解析 html 文件,我们可以提供更多甚至更好的建议。只是说因为我过去一直在逐行苦苦挣扎解析 HTML 以使模板引擎工作。无论如何,赞成 Klings 评论。
标签: javascript newline line-by-line character-codes