2014-06-12 23 views
0

的JSLint“不必要擒纵”错误我有一个JavaScript串这样的:忽略Unicode转义序列

"arc\u007ccommunity blog post." 

其中JSLint的报告作为“不必要擒纵”错误。

我该如何告诉JSLint忽略它?


背景: 的原因,我们不只是字符串:

"arc|community blog post." 
源代码

,是代码使用T4模板生成的,而我们使用的是|以生成源中的字符作为分隔符。

+0

我刚刚看到您的修改。解决这个问题的方法之一是切换到JSHint,它根本不检查字符串是否有转义序列。另外,出于兴趣,您使用的是什么版本的JSLint? –

+0

我们已经使用了JSLint几年了,它对我们来说一般都很好,所以我不认为我们想改成JSHint。我可能会决定从JSLint流程中排除生成的代码。谢谢你的帮助。 – GarethOwen

+1

您的JSLint版本似乎大约4岁,所以我会建议您更新,如果可以的话!看起来好像在2010年某个时候从“坏擒纵系统”改变过来的信息。 –

回答

1

JSLint正在为您提供该错误,因为您使用Unicode转义序列来表示可以正常表示的字符。你的情况,你应该能够用以下替换字符串:

"arc|community blog post." 

以下为function used inside JSLint找到允许Unicode转义序列。如果你用一个不是在给定的范围内,你会得到“不必要的擒纵”错误(或“意外的‘\’”在最新版本):

function hex(n) { 
    var i = parseInt(source_row.substr(at + 1, n), 16); 
    at += n; 
    if (i >= 32 && i <= 126 && 
      i !== 34 && i !== 92 && i !== 39) { 
     warn('unexpected_a', line, character, '\\'); 
    } 
    character += n; 
    ch = String.fromCharCode(i); 
} 

不幸的是没有办法关闭这个检查。