在innerHTML输出中插入新行

时间:2015-05-05 22:22:07

标签: javascript html tags newline line-breaks

如果我要为变量var text = "Hello World!"创建一个字符串,并且我想在单词Hello之后添加一个新行,我知道我可以创建一个新变量var b = text.replace(" ", "\n");和console.log (b)将以2行显示该文本。 (我也知道在没有使用替换方法的情况下有多种方法)。

但是我有一堆文件来自document.getElementById(" div")。innerHTML返回一堆脚本和img以及更多div标签等。当它写这个时,它没有&# 39;真的可以做任何间距,只是一起揉搓,尽可能多的字符。

我可以打印出document.getElementById(&#34; div&#34;)。innerHTML的内容,以便在每个标记</script> </img>结束后,它会创建一个更容易阅读的新行吗? 我尝试替换(&#34;&gt;&#34;,&#34;&gt; \ n&#34;)但我没有做任何我假设的事情是因为格式innerHTML所在,实际上并不是我认为的文本字符串。

3 个答案:

答案 0 :(得分:1)

替换js命令只需替换第一个char,试试这个:

str.replace(/>/g, "><br>");

答案 1 :(得分:1)

.innerHTML

的替代方案

.textContext并不完美,但在这种情况下你可以使用它:

var text = document.getElementById("div").textContent;

<小时/>

解决方案

替换换行符:

text.replace(/(img\/|script)\>/ig, '$1>\n')

<小时/> 休息时间:

text.replace(/(img\/|script)\>/gi, '$1>\<br/>')

<小时/>

正则表达式

(            <- Start capturing group
    img\/    <- Select img\
    |        <- OR
    script   <- Select script
)
\>           <- Matches > character


g 是全局修饰符。 i 是不区分大小写的修饰符。字符串中的 $1 将替换捕获组。

答案 2 :(得分:0)

获取正确的节点,然后执行此操作:

private void decode(HuffmanNode root, StringBuffer code, Character theChar) {
    if (code.length() > 1) {
        if (code.charAt(0) == '0') {
            if (root.getLeft() == null) {
                root.setLeft(new HuffmanNode('\0', 0, null, null));
                decode(root.getLeft(), code.deleteCharAt(0), theChar);
            } else {
                decode(root.getLeft(), code.deleteCharAt(0), theChar);

            }
        } else {
            if (root.getRight() == null) {
                root.setRight(new HuffmanNode('\0', 0, null, null));
                decode(root.getRight(), code.deleteCharAt(0), theChar);
            } else {
                decode(root.getRight(), code.deleteCharAt(0), theChar);
            }
        }
    }

    if (code.length() == 1) {
        if (code.charAt(0) == '0') {
            if (root.getLeft() == null) {
                root.setLeft(new HuffmanNode(theChar, 0, null, null));
            } else {
                root.getLeft().setChar(theChar);
            }
        } else {
            if (root.getRight() == null) {
                root.setRight(new HuffmanNode(theChar, 0, null, null));
            } else {
                root.getRight().setChar(theChar);
            }
        }
        code.deleteCharAt(0);
    }
    return;
}

HTML将新行和空格视为单个空格。当然,如果您只是希望文本易于用户准备好并且您知道内容已经是什么,var b = text.replace(/\s+/, '<br />'); 可能是您的朋友。