如何在JavaScript中跨多行代码断开字符串?
JavaScript中是否有一个字符可以分解一行代码,这样即使在新行上,代码仍然可以连续读取 像 1. alert ( "Please Select file 2. \ to delete" ); 1.警报(“请选择文件 2.[删除];如何在JavaScript中跨多行代码断开字符串?,javascript,line-breaks,Javascript,Line Breaks,JavaScript中是否有一个字符可以分解一行代码,这样即使在新行上,代码仍然可以连续读取 像 1. alert ( "Please Select file 2. \ to delete" ); 1.警报(“请选择文件 2.[删除]; 在您的示例中,可以将字符串分成两部分: alert ( "Please Select file" + " to delete"); 或者,当它是字符串时,如您的情况,您可以使用@Gumbo建议的: alert ( "Please Select file
在您的示例中,可以将字符串分成两部分:
alert ( "Please Select file"
+ " to delete");
或者,当它是字符串时,如您的情况,您可以使用@Gumbo建议的:
alert ( "Please Select file\
to delete");
请注意,这种反斜杠方法是,而且可能不是普遍支持的(我很难找到这方面的硬数据)。它不在房间里
使用其他代码(不在引号中)时,会忽略换行符,这是完全可以接受的。例如:
if(SuperLongConditionWhyIsThisSoLong
&& SuperLongConditionOnAnotherLine
&& SuperLongConditionOnThirdLineSheesh)
{
// launch_missiles();
}
将反斜杠放在行尾:
alert("Please Select file\
to delete");
编辑我必须注意,这不是as的一部分,根本不允许: “LineTerminator”字符不能出现在字符串文字中,即使前面有反斜杠
\
。使行终止符字符成为字符串文字的字符串值的一部分的正确方法是使用转义序列,如\n
或\u000A
因此,使用字符串连接是更好的选择
更新2015-01-05允许使用上述语法: 行结束符字符不能出现在字符串文字中,除非作为LineContinuation的一部分以生成空字符序列。使行终止符字符成为字符串文字的字符串值的一部分的正确方法是使用转义序列,如
\n
或\u000A
你可以用
1: alert("Please select file" +
2: " to delete");
这样应该可以把绳子分成两段
alert ("Please select file " +
"to delete");
不需要任何手动闯入代码。 只需将\n添加到要中断的位置
alert ("Please Select file \n to delete");
这将显示如下警告:
Please select file
to delete.
值得注意的是。尝试:
alert("Some \
string \
wrapped \
across \
mutliples lines.")
这起作用了。然而,在事故中!,最后一个反斜杠后面有一个空格字符(所有其他反斜杠都在该行的末尾)。这在javascript中导致了一个错误!不过,删除此空间修复了错误
这是在使用Cordova的Android ADT中。我尝试了上述一些建议,但在Chrome代码检查器中得到了非法字符警告。以下内容对我有效(但仅在Chrome中测试!) 出来像
stuff on line 1
stuff on line 2
注意双反斜杠!!。。。这似乎很重要 引入了ECMAScript 6:
模板字符串是允许嵌入表达式的字符串文本。
可以将多行字符串和字符串插值功能用于
他们
例如:
if(SuperLongConditionWhyIsThisSoLong
&& SuperLongConditionOnAnotherLine
&& SuperLongConditionOnThirdLineSheesh)
{
// launch_missiles();
}
警报(`请选择文件
删除`);
将提醒:
请选择文件
删除
您可以将长字符串常量分解为逻辑块,并将其分配到数组中。然后用一个空字符串作为分隔符执行一个join
var stringArray = [
'1. This is first part....',
'2. This is second part.....',
'3. Finishing here.'
];
var bigLongString = stringArray.join('');
console.log(bigLongString);
输出将是:
这样会对性能造成轻微的影响,但代码的可读性和可维护性会有所提高。对于VSCode用户,如果字符串分解为多行会导致问题(我在测试长JWT令牌时遇到了这个问题,但不知怎的,使用模板文本并没有做到这一点。)反斜杠运算符不可靠。尝试在浏览器控制台中粘贴此功能:
函数printString(){
const s=“someLongLineOfText\
“这不应该被打破”;
控制台日志;
}
然后运行它。由于函数中的常规(且正确)缩进,将包含两个额外的空格,这将导致一些不应中断的长行文本
在这种情况下,即使使用反勾号也无济于事。始终使用连接“+”运算符来防止这种类型的问题。您能分解if语句吗?但请注意自动分号插入机制:尝试在函数末尾的一行上返回,下一行上插入“字符串”,结果会导致未定义。这符合标准吗?所有兼容浏览器都支持它吗?现在旧的浏览器支持吗?这些重要的问题都没有涉及到,-1.好吧,如果你要问一大堆还没有问过的新问题,你必须给我们一个机会来回答它们。我用一个不令人满意的推测更新了我的答案。当心反斜杠。它会吃掉所有的黑面包,直到找到一个没有空白的。因此,示例将显示“警报”:请选择要删除的文件。如果希望文件和to之间有空格,则应将其放在反斜杠之前。但不要忘记在第一个块的末尾或第二个块的开头有空格;)投票失败,你能告诉我投票失败的原因吗。我不知道谁投了反对票,也不知道为什么;但这只是一个猜测:op想要知道如何在多行代码中扩展文本文字,而不是如何在输出中插入换行符。这不是op想要的。他想知道如何在代码中而不是在UI中打断长字符串。允许:“行结束符字符不能出现在字符串文字中,除非作为行连续的一部分以产生空字符序列。使行结束符字符成为字符串文字字符串值的一部分的正确方法是使用转义序列,如\n
或\u000A
”@Oriol感谢您的留言,相应地更新了答案!如果文件是在Windows中创建的,这是否有问题。换句话说,以\r\n
而不是\n
结尾的行花费了我一天的大部分时间来解决这个问题,多亏了你,我还发现任何斜杠后面的空格字符都导致我的ionic应用程序无法编译。非常感谢。不敢相信有人评论说,这将包括代码中作为字符串一部分的任何缩进,因此示例将成为Some\nstring\nwrapped\nac