NewLine转义字符不起作用

时间:2012-04-19 10:08:30

标签: javascript html newline

我们知道\ n用于在JavaScript中提供新行 我应该如何将它用于输出(在for循环中):

str=prompt("Enter any string!");
    for(i=0;i<str.length;i++)
    {
        document.write('\n'+str.charCodeAt(i));
    }   

str=prompt("Enter any string!");
    for(i=0;i<str.length;i++)
    {
        document.write('\n'+str.charCodeAt(i));
    }

似乎都没有效果。

4 个答案:

答案 0 :(得分:24)

这与JavaScript无关。在HTML中,所有空格(包括换行符)都会折叠并视为单个空格。

在HTML中执行换行符:

  • 使用<br>
  • 或使用<p>...</p>等将文字整理成段落。)
  • 或者,如果您要输出某种形式的格式化文本(例如代码),则可以在<pre>...</pre>元素(或包含white-space: prewhite-space: pre-wrap的任何元素中执行此操作,或者white-space: pre-line样式应用于它。)。

答案 1 :(得分:0)

如果您要写入文档,则需要document.write('<br/>'+str.charCodeAt(i)); - 或者在<pre>标记(或样式属性为white-space:pre的其他元素)中设置输出。

答案 2 :(得分:0)

使用document.writeln()方法。

writeln()方法与write()方法相同,在每个语句后添加了换行符。

试试这个

 str=prompt("Enter any string!");
 for(i=0;i<str.length;i++)
 {
    document.writeln(str.charCodeAt(i));
 } 

答案 3 :(得分:0)

我提出了一个更好的解决方案。观看操作https://repl.it/@mamamia5x/Example

在CSS中做

h1 span::before { 
  content: "\A";
  white-space: pre;
}

用任何东西替换h1。现在,每当您执行<span>时,新行都会中断。因此,只要有人说/ n,它就会执行<span>并换一行。

if (txt.charAt(i) == '/' && txt.charAt(i + 1) =='n'){
   document.getElementById("text").innerHTML += " <span>";
   i = i + 2;
} 

这里是运行中的https://repl.it/@mamamia5x/Example,这是我正在https://live-stream.mamamia5x.repl.co/中使用的项目。

我还使其与<br>一起使用。如果要这样做,可以

if (txt.charAt(i) == '<' && txt.charAt(i + 1) == 'b' && txt.charAt(i + 2) == 'r' && txt.charAt(i + 3) == '>'){

您还可以将两者混在一起,并且可以允许/n<br>