如何在JavaScript中的多行代码中断字符串?

时间:2009-02-03 18:16:19

标签: javascript line-breaks

JavaScript中是否有一个字符可以分解一行代码,以便尽管它在新行上而被视为连续代码?

像......那样的东西。

1. alert ( "Please Select file   
2. \ to delete" );

11 个答案:

答案 0 :(得分:245)

在您的示例中,您可以将字符串分成两部分:

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

或者,当它是一个字符串时,就像你的情况一样,你可以使用backslash作为@Gumbo建议:

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

请注意,此反斜杠方法为not necessarily preferred,并且可能不受普遍支持(我无法在此处查找硬数据)。 ECMA 5.1 spec中的不是

使用其他代码(不在引号中)时,会忽略换行符,并且完全可以接受。例如:

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

答案 1 :(得分:41)

将反斜杠放在行尾:

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

修改我必须注意,ECMAScript strings不是部分,因为line terminating characters完全不允许:

  

' LineTerminator '字符不能出现在字符串文字中,即使前面加了反斜杠\。使行终止符字符成为字符串文字的字符串值的一部分的正确方法是使用转义序列,例如\n\u000A

因此使用字符串连接是更好的选择。


更新2015-01-05 String literals in ECMAScript5允许上述语法:

  

行终止符不能出现在字符串文字中,除非作为 LineContinuation 的一部分生成空字符序列。使行终止符字符成为字符串文字的String值的一部分的正确方法是使用转义序列,例如\n\u000A

答案 2 :(得分:27)

ECMAScript 6介绍了template strings

  

模板字符串是允许嵌入表达式的字符串文字。   您可以使用多行字符串和字符串插值功能   它们。

例如,

alert(`Please Select file   
to delete`);

会提醒

Please Select file   
to delete

答案 3 :(得分:6)

将字符串分成两部分

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

答案 4 :(得分:4)

有趣的是要注意。尝试:

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

这很有效。然而,在意外!,最后一个反斜杠后面有一个空格字符(所有其他反斜杠都在该行的末尾)。这导致了javascript中的错误!但是,删除此空间可以修复错误。

这是在ADT for Android中使用Cordova。

答案 5 :(得分:1)

你可以使用

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

那应该有用

答案 6 :(得分:0)

您可以将长字符串常量分解为逻辑块并将其分配给数组。然后使用空字符串作为分隔符来执行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。这是第二部分。....3。在这里结束。
  2.   

这种方式对性能影响不大,但是您获得了代码的可读性和可维护性。

答案 7 :(得分:0)

A good solution here (对于VSCode用户),如果将字符串分解为多行导致此问题(当我不得不测试一个较长的JWT令牌时遇到了此问题,而使用模板文字以某种方式没办法。)

答案 8 :(得分:0)

反斜杠运算符不可靠。尝试将此功能粘贴到浏览器控制台中:

function printString (){
  const s = "someLongLineOfText\
  ThatShouldNotBeBroken";
  console.log(s);
}

,然后运行它。由于函数中的常规(正确的)缩进,因此将包括两个额外的空格,从而产生someLongLineOfText ThatShouldNotBeBroken

在这种情况下,即使使用反引号也无济于事。始终使用串联“ +”运算符来防止此类问题。

答案 9 :(得分:-2)

我尝试了上述一些建议,但在Chrome代码检查器中收到了ILLEGAL字符警告。以下内容适用于我(仅在Chrome中测试过!)

alert('stuff on line 1\\nstuff on line 2);

出来就像......

stuff on line 1
stuff on line 2

注意双反斜杠!! ......这似乎很重要!

答案 10 :(得分:-5)

代码中无需任何手动中断。 只需添加\ n你想要破解的地方。

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

这将显示警告

Please select file 
to delete.