【问题标题】:SyntaxError: '' string literal contains an unescaped line breakSyntaxError: '' 字符串文字包含未转义的换行符
【发布时间】:2020-01-07 09:14:01
【问题描述】:

我有一个控制台错误告诉我:

SyntaxError: '' 字符串文字包含未转义的换行符

我已多次检查语法,但无法纠正错误。如果您能识别出某些东西,我会将代码复制给您。

    $('#nouveau').click(function(){
        $('#action').html('<?php echo preg_replace('/\s\s+/', '', $langs->trans("Delete") ); ?>');
        $('.titre_ecv').html('<?php echo addslashes(trim(preg_replace('/\s\s+/', '', $langs->trans("ecv_nouveau_formation")))); ?>');
        $('.nouveau').show();
        $('#valider').show();
        $id=$('#tr_formations tr').length+1; 
        $('#tr_formations').append('<tr><td><input name="action" type="hidden" value="create"><input type="text" name="formations['+$id+'][etablissement]" autocomplete="off" style="width:95%" /></td> <td style="width:10%;"> <select class="niveau flat" id="niveau" name="formations['+$id+'][niveau]" ><option value="0" ></option><option value="Qualifiant"  ><?php echo preg_replace('/\s\s+/', '', $langs->trans("Qualifiant") ); ?></option><option value="Bac" >Bac </option> <option value="Bac+1" >Bac+1 </option><option value="Bac+2" >Bac+2 </option><option value="Bac+3" >Bac+3 </option><option value="Bac+4" >Bac+4 </option><option value="Bac+5" >Bac+5 </option><option value="Master_specialisé" ><?php echo preg_replace('/\s\s+/', '', $langs->trans("Master_specialisé") ); ?> </option><option value="Master_recherche" ><?php echo preg_replace('/\s\s+/', '', $langs->trans("Master_recherche") ); ?> </option> <option value="Doctorat" >Doctorat </option></select> </td> <td ><input type="text"  name="formations['+$id+'][intitule]" autocomplete="off" style="width:95%" /></td> <td><input type="text"  name="formations['+$id+'][filiere]" autocomplete="off" style="width:95%" /></td><td style="width:8%;"><input type="text" name="formations['+$id+'][debut]" class="datepicker debut" value="<?php echo date('d/m/Y') ?>" onchange="MinDate(this);" autocomplete="off" /></td> <td style="width:8%;"><input type="text" name="formations['+$id+'][fin]" value="<?php echo date('d/m/Y') ?>" class="datepicker fin" onchange="MaxDate(this);" autocomplete="off" /><div align="center"><label><input type="checkbox" name="experiences['+$id+'][no_jours]" onchange="no_jourss(this);"> <b class="nos_jour"><?php echo trim(preg_replace('/\s\s+/', '', $langs->trans("ecv_no_jours") )); ?></b></label></div> </td><td align="center"><img src="<?php echo DOL_MAIN_URL_ROOT.'/theme/md/img/delete.png' ?>" class="img_delete" onclick="delete_tr(this);"></td></tr>');
        $( ".datepicker" ).datepicker({
            dateFormat: 'dd/mm/yy'
        });
        $(".niveau").select2()
    });

我的工作是更正现有代码。谢谢你的帮助

【问题讨论】:

  • 如果您遵循 `$('#tr_formations')` 行,那么某处似乎有一个额外的单引号导致该行的其余部分不同步。
  • 是的,我正在寻找这条线上。但我的眼睛一定有问题,因为我看了好几次都没有看到……我试图继续看,但没有成功。
  • 尝试将每个单引号字符串换行,这样可能更容易找到差异所在
  • 是的,我确实喜欢这样做,而且确实让我找到了错误。谢谢

标签: php html module syntax-error


【解决方案1】:
 $('#action').html(...)

 $('.titre_ecv').html(...)

混合了'和",所以应该有错误。 虽然 &lt;?php... 应该不起作用,因为 PHP 运行在服务器上而不是 Web 浏览器上。

编辑

这可能有效:

$('#action').html("<?php echo preg_replace('/\s\s+/', '', $langs->trans('Delete') ); ?>");
$('.titre_ecv').html("<?php echo addslashes(trim(preg_replace('/\s\s+/', '', $langs->trans('ecv_nouveau_formation')))); ?>");

【讨论】:

  • 是的,我已经设法纠正了代码的其他部分确实阻止了 php.ini 的错误。我正在尝试改变'和'但我的错误仍然是一样的。
  • 它不起作用。我测试了这条线,不起作用的部分是级别的选择。在 $('#tr_formations') 之后。很难找到在哪里
  • &lt;?php 的东西有效,它由服务器执行,浏览器永远不会看到它。只是语法突出显示它。将 .html("&lt;?php echo preg_replace('/\s\s+/', '', $langs-&gt;trans('Delete') ); ?&gt;") 替换为 .html(&lt;?php echo json_encode (preg_replace('/\s\s+/', '', $langs-&gt;trans('Delete') )); ?&gt;) 可能更安全,另外它不会突出显示语法。
【解决方案2】:

搜索引擎将我带到了这个问答环节,但解决方案完全不同。发布它以防万一它帮助他人。

搜索到了这个错误:

Uncaught SyntaxError: '' string literal contains an unescaped line break

有问题的行包含:

    alert('validUrlSyntax: ' + validUrlSyntax +
          ' validUrlExists: ' + validUrlExists +
          ' time to check: ' + elapsedTime + ' milliseconds`)

请注意,最后一个撇号实际上是一个反勾号。将反引号更改为撇号 ' 解决了这个问题。

【讨论】:

    猜你喜欢
    • 2021-05-18
    • 1970-01-01
    • 2020-09-28
    • 1970-01-01
    • 2019-09-19
    • 1970-01-01
    • 2021-07-07
    • 2012-02-02
    • 1970-01-01
    相关资源
    最近更新 更多