web-dev-qa-db-ja.com

JavaScriptで複数行のコードに文字列を分割するにはどうすればよいですか?

JavaScriptにコードの行を分割して、新しい行にあるにもかかわらず継続的に読み取られるようにする文字はありますか?

何かのようなもの....

 1。 alert( "ファイル
 2。\を選択して削除してください"); 
179
T.T.T.

この例では、文字列を2つの部分に分割できます。

alert ( "Please Select file"
 + " to delete");

または、あなたの場合のように文字列の場合、@-Gumboが示唆するように バックスラッシュ を使用できます。

alert ( "Please Select file\
 to delete");

このバックスラッシュアプ​​ローチは 必ずしも好ましいとは限りません であり、おそらく普遍的にサポートされていないことに注意してください(これに関するハードデータを見つけるのに苦労しました)。 ECMA 5.1 spec ではnotです。

他のコード(引用符ではない)を使用する場合、改行は無視され、完全に受け入れられます。例えば:

if(SuperLongConditionWhyIsThisSoLong
  && SuperLongConditionOnAnotherLine
  && SuperLongConditionOnThirdLineSheesh)
{
    // launch_missiles();
}
246
Michael Haren

行の最後にバックスラッシュを置きます:

alert("Please Select file\
 to delete");

Editこれは ECMAScript文字列notの一部であることに注意する必要があります== as 行終端文字 は許可されません:

'LineTerminator'文字は、バックスラッシュ\が前に付いていても、文字列リテラルに表示できません。行終端文字を文字列リテラルの文字列値の一部にする正しい方法は、\n\u000Aなどのエスケープシーケンスを使用することです。

したがって、文字列の連結を使用する方が適切です。


2015-01-05を更新- ECMAScript5の文字列リテラル 上記の構文を許可:

行終端文字は、空の文字シーケンスを生成するLineContinuationの一部を除いて、文字列リテラルに表示できません。行終端文字を文字列リテラルの文字列値の一部にする正しい方法は、\n\u000Aなどのエスケープシーケンスを使用することです。

41
Gumbo

ECMAScript 6では、 テンプレート文字列 が導入されています。

テンプレート文字列は、埋め込み式を許可する文字列リテラルです。複数行の文字列と文字列補間機能を使用できます。

例えば、

alert(`Please Select file   
to delete`);

警告します

Please Select file   
to delete
27
Oriol

文字列を2つの部分に分割します

alert ("Please select file " +
       "to delete");
6
Jason Punyon

興味深いことに注意してください。試した:

alert("Some \
    string \
    wrapped \
    across \
    mutliples lines.")

そしてこれはうまくいきました。ただし、偶然!で、最後のバックスラッシュの後にスペース文字がありました(他のすべてのバックスラッシュは行末にありました)。そして、これはjavascriptでエラーを引き起こしました!ただし、このスペースを削除するとエラーは修正されました。

これは、Cordovaを使用するAndroidのADTです。

4
There

あなただけを使用することができます

1:  alert("Please select file" +
2:        " to delete");

うまくいくはず

1
Jaime Garcia

長い文字列定数を論理的なチャンクに分割して、配列に割り当てることができます。次に、区切り文字として空の文字列を使用してjoinを実行します。

var stringArray = [
  '1. This is first part....',
  '2. This is second part.....',
  '3. Finishing here.'
];

var bigLongString = stringArray.join('');
console.log(bigLongString);

出力は次のようになります。

  1. これが最初の部分です。..2。これは2番目の部分です。...3。ここで終了。

この方法ではわずかにパフォーマンスが低下しますが、コードの可読性と保守性は向上します。

0
blackcatweb