【问题标题】:Is it possible to test for breaking spaces?是否可以测试打破空间?
【发布时间】: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 中呈现,就好像它是一个连续的、格式正确的字符串。但是我发现控制台可以识别不间断空格和新行之间的区别。其中" "

"
"

分别代表两者。

由于控制台似乎知道差异,似乎应该有一种方法来测试差异。如果您解锁注释条件,它将开始测试不间断空格。我认为还有另一种方法可以使用字符编码字符串(不是 &nbsp,另一种)。期望能够找到中断空格的字符代码似乎是合理的。可惜我找不到。

长话短说,如何实现真正的逐行解析html文件?

【问题讨论】:

  • '\n' 是换行符。这就是你要找的吗?
  • 你不能换行依赖于许多细节,屏幕大小,容器大小,字体大小,缩放等。你看到的新行我可能不会。
  • “但在控制台中,内联空格显示为不间断空格" " – 如果您只能看到" ",那么您怎么知道那是正常的还是不间断的空间……?
  • 如果你想逐行解析,你不应该有 var list=document.getElementById("myE").innerHTML.split("\n"); ?
  • 我的意思是,由于显示的代码只为您提供了 html 标签的所有内容的长度,您不妨跳过“循环以逐行解析部分”,只需替换您的所有内容不想统计。如果我们知道为什么您需要逐行解析 html 文件,我们可以提供更多甚至更好的建议。只是说因为我过去一直在逐行苦苦挣扎解析 HTML 以使模板引擎工作。无论如何,赞成 Klings 评论。

标签: javascript newline line-by-line character-codes


【解决方案1】:

换行符用\n 编码。有时您还会发现回车符和换行符\r\n 的组合(参见维基百科的换行符)。这些不应与非中断空格 &amp;nbsp;&amp;#160; 混淆,如果您希望浏览器不自动换行但仍显示一个空格,或者如果您希望浏览器不将多个空格折叠在一起,则使用它们。

【讨论】:

    猜你喜欢
    • 2019-04-18
    • 2013-09-13
    • 2018-08-22
    • 1970-01-01
    • 2013-05-01
    • 2015-01-30
    • 1970-01-01
    • 2010-11-21
    • 2023-03-19
    相关资源
    最近更新 更多