文本编辑器换行符在javascript中结束字符串内容吗?

时间:2014-02-15 01:13:15

标签: javascript text-editor line-breaks

在以下脚本[脚本]中,

document.write(
    '<div class="user-info-wrap">
    <div class="user-info-left">'

我的文本编辑器停止对第三行着色,就好像它不包含在单引号中一样。文本编辑器换行符结束(javascript字符串)引用内容吗?

如果是这样,那就意味着我需要做以下操作,在我看来,似乎没有意义,所以文本编辑器的着色原理图可能是错误的。

 document.write(
     '<div class="user-info-wrap">' +
     '<div class="user-info-left">'

这是什么?

2 个答案:

答案 0 :(得分:3)

您可以执行以下两种方法之一:

<强>级联:

var multiStr = "This is the first line " +
"This is the second line " +
"This is more...";

<强>逃逸:

var multiStr = "This is the first line \
This is the second line \
This is more...";

两个输出:

  

这是第一行这是第二行这是更多......


注意:使用转义方法,不会忽略连续行上的前导空格。

var multiStr = "This is the first line \
    This is the second line \
    This is more...";

这将输出:

  

这是第一行这是第二行这是更多......


回答您的问题:

并非所有文本编辑器都支持JavaScript多行字符串突出显示。 Notepad ++可以很好地处理它,而VI / VIM不会将整个字符串显示为红色。 VI / VIM只知道如何在放置开头报价的同一行上突出显示字符串。如果你注意到,VI / VIM认为你创建了一个新的String(在最后一行),第一个字符是分号。事实并非如此,这只是编辑突出显示的一个缺陷。

enter image description here

答案 1 :(得分:0)

Javascript不允许没有转义的多行字符串。所以,这不起作用:

var foo = "bar
bar";

您可以将整个字符串放在一行,例如:

var foo = "bar\nbar"; // includes the line break

或者您可以使用\转义换行符,如下所示:

var foo = "bar\
bar";

在后一个例子中,foobarbar(没有换行符)。您可以手动添加空格或换行符,如下所示:

var foo = "bar \
bar";

var foo = "bar\n\
bar";

请注意,\之后的行上的任何前导空格都不会被忽略,因此:

var foo = "bar\
    bar";

给出foo

bar     bar

当然,你总是可以连接字符串的一部分,如下所示:

var foo = "bar"
+"bar";