Javascript 多行字符串和意外令牌非法
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/12115276/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Javascript Multi-line string and Unexpected Token ILLEGAL
提问by Mustafa Alammar
I have a multi-line string template in it's own separate js file for use in underscore js. However, no matter how I escape the line breaks I still get an:
我在它自己的单独 js 文件中有一个多行字符串模板,用于下划线 js。但是,无论我如何逃避换行符,我仍然会得到:
Uncaught SyntaxError: Unexpected token ILLEGAL
未捕获的语法错误:意外的令牌非法
On line 1 of the file when it's loaded into the browser.
当文件加载到浏览器时,在文件的第 1 行。
App.Templates['template1'] = '\
<div data-role="page" data-theme="c" id="" data-title="">\
<div data-role="content" class="subnav">\
<table id="day-table" cellpadding="0" cellspacing="0" border="0">\
<thead class="ui-body-a">\
<tr>\
<th>T</th>\
<th>J</th>\
<th>H</th>\
<th>C</th>\
</tr>\
</thead>\
<tbody>\
</tbody>\
<tfoot>\
<tr>\
<td class="total-label" colspan="2">Total:</td>\
<td class="total"></td>\
</tr>\
<tr>\
<td class="btn-row">\
<a href="#r" data-role="button" id="add-btn" data-rel="dialog" data-mini="true" data-inline="true" data-icon="add">Add Rows</a>\
<a href="#" data-role="button" id="save-btn" data-rel="dialog" data-mini="true" data-inline="true" data-theme="b" data-icon="check">Save</a>\
</td>\
</tr>\
</tfoot>\
</table>\
</div><!--/content-->\
</div><!-- /page -->';
Any ideas?
有任何想法吗?
回答by Esailija
Line terminators are not allowed in strings, you need to escape them:
字符串中不允许使用行终止符,您需要对它们进行转义:
App.Templates['template1'] = '\
\
<div data-role="page" data-theme="c" id="" data-title="">\
\
<div data-role="content" class="subnav">\
\
<table id="day-table" cellpadding="0" cellspacing="0" border="0">\
<thead class="ui-body-a">\
<tr>\
<th>T</th>\
<th>J</th>\
<th>H</th>\
<th>C</th>\
</tr>\
</thead>\
<tbody>\
</tbody>\
<tfoot>\
<tr>\
<td class="total-label" colspan="2">Total:</td>\
<td class="total"></td>\
</tr>\
<tr>\
<td class="btn-row">\
<a href="#r" data-role="button" id="add-btn" data-rel="dialog" data-mini="true" data-inline="true" data-icon="add">Add Rows</a>\
<a href="#" data-role="button" id="save-btn" data-rel="dialog" data-mini="true" data-inline="true" data-theme="b" data-icon="check">Save</a>\
</td>\
</tr>\
</tfoot>\
</table>\
\
</div><!--/content-->\
\
</div><!-- /page -->';
To make it easier to see where you have line terminators, you can turn on visible whitespace in your text editor and you should see something like this:
为了更容易看到行终止符的位置,您可以在文本编辑器中打开可见的空格,您应该看到如下内容:
回答by Mustafa Alammar
I figured it out. Empty lines also need to be escaped.
我想到了。空行也需要转义。
App.Templates['template1'] = '\
\
<div data-role="page" data-theme="c" id="" data-title="">\
\
<div data-role="content" class="subnav">\
\
<table id="day-table" cellpadding="0" cellspacing="0" border="0">\
<thead class="ui-body-a">\
<tr>\
<th>T</th>\
<th>J</th>\
<th>H</th>\
<th>C</th>\
</tr>\
</thead>\
<tbody>\
</tbody>\
<tfoot>\
<tr>\
<td class="total-label" colspan="2">Total:</td>\
<td class="total"></td>\
</tr>\
<tr>\
<td class="btn-row">\
<a href="#r" data-role="button" id="add-btn" data-rel="dialog" data-mini="true" data-inline="true" data-icon="add">Add Rows</a>\
<a href="#" data-role="button" id="save-btn" data-rel="dialog" data-mini="true" data-inline="true" data-theme="b" data-icon="check">Save</a>\
</td>\
</tr>\
</tfoot>\
</table>\
\
</div><!--/content-->\
\
</div><!-- /page -->';