未终止的字符串文字

IT技术 javascript
2021-03-14 01:58:54

以下代码:

var str= "<strong>English Comprehension<\/strong>
                    <br\/>
                    <ul>
                    <li>  Synonyms/Antonyms/Word Meaning (Vocabulary)<\/li>
                    <li>  Complete the Sentence (Grammar)<\/li>
                    <li>  Spot error/Correct sentence (Grammar/sentence construction)<\/li>
                    <li>  Sentence Ordering (Comprehension skills)<\/li>
                    <li>  Questions based on passage (Comprehension skills)<\/li>
                    <\/ul>
                    <br\/>";

给出错误:“未终止的字符串文字”。有什么问题?

6个回答

您不能像在 javascript 中那样跨行拆分字符串。您可以通过使每一行成为一个单独的字符串并将它们与加号连接来实现相同的可读性,如下所示:

var str = "<strong>English Comprehension</strong>"
    + "<br />"
    + "<ul>"
    + "<li>Synonyms/Antonyms/Word Meaning (Vocabulary)</li>"

等等...

如果在 JavaScript 中使用多行字符串,则必须在每行末尾使用 '\':

var str = "abc\
def\
ghi\
jkl";

如果您的代码缩进,还要注意额外的空格。

我建议以不同的方式来做...具有该 HTML 的隐藏元素,例如

<div id="myHiddenDiv" style="display: none;"><strong>English Comprehension</strong>
<br />
...
</div>

然后简单地阅读它的内部 HTML:

var str = document.getElementById("myHiddenDiv").innerHTML;

最大的优点是您不必与文字字符串斗争并且更容易编辑,缺点是您向 DOM 添加了另一个元素。你的选择。:)

干杯@VIKASH,在这种情况下,可以通过单击左侧的“V”图标随意接受答案..对于您的其他问题也是如此 - 接受正确答案就是这个地方的运作方式。:)
2021-04-21 01:58:54
最终我用你的方法做到了。使用 jQuery。
2021-04-28 01:58:54

在 Javascript 中编写多行字符串不是最佳实践。

但是,您可以使用\终止符来做到这一点

var str= "<strong>English Comprehension<\/strong>\
                <br\/>\
                <ul>\
                <li>  Synonyms/Antonyms/Word Meaning (Vocabulary)<\/li>\
                <li>  Complete the Sentence (Grammar)<\/li>\
                <li>  Spot error/Correct sentence (Grammar/sentence construction)<\/li>\
                <li>  Sentence Ordering (Comprehension skills)<\/li>\
                <li>  Questions based on passage (Comprehension skills)<\/li>\
                <\/ul>\
                <br\/>";

请注意,尾随空格是字符串的一部分,因此最好去掉它们,除非它们是故意的:

var str= "<strong>English Comprehension<\/strong>\
<br\/>\
<ul>\
<li>  Synonyms/Antonyms/Word Meaning (Vocabulary)<\/li>\
<li>  Complete the Sentence (Grammar)<\/li>\
<li>  Spot error/Correct sentence (Grammar/sentence construction)<\/li>\
<li>  Sentence Ordering (Comprehension skills)<\/li>\
<li>  Questions based on passage (Comprehension skills)<\/li>\
<\/ul>\
<br\/>";

在 javascript 中连接字符串的一个好方法是休耕:

var stringBuilder = [];

stringBuilder.push("<strong>English Comprehension</strong>");
stringBuilder.push("<br />");
stringBuilder.push("<ul>");
...
var resultString = stringBuilder.join("");

这种方法比

var str = "a"+"b" +"c"
有趣的技巧,虽然在原始代码中没有字符串连接。
2021-05-01 01:58:54