web-dev-qa-db-ja.com

改行エスケープ文字が機能しない

\ 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));
    }

どちらも機能していないようです。

13
pop stack

これはJavaScriptとは何の関係もありません。 HTMLでは、すべての空白(改行を含む)が折りたたまれ、単一のスペースとして扱われます。

HTMLで改行するには:

  • 使用する - <br>
  • または、テキストを <p>...</p> など)
  • または、何らかの形式のフォーマットされたテキスト(コードなど)を出力する場合は、 <pre>...</pre> 要素(または white-space: prewhite-space: pre-wrap、またはwhite-space: pre-lineスタイルが適用されます)。
31
T.J. Crowder

ドキュメントに書き込む場合は、document.write('<br/>'+str.charCodeAt(i));-または、出力を<pre>タグ(またはスタイル属性がwhite-space:preの別の要素)に設定する必要があります。

0
Mikey

私ははるかに良い解決策を作りました。実際の動作をご覧ください 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) == '>'){

2つを一緒に混合することもでき、/n<br>を許可できます。

0
Bugs Bunny

document.writeln()メソッドを使用します。

Writeln()メソッドはwrite()メソッドと同じですが、各ステートメントの後に改行文字を書き込むことが追加されています。

これを試して

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