如果我要为变量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所在,实际上并不是我认为的文本字符串。
答案 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 />');
可能是您的朋友。