我正试图通过新版的JSLint来验证我的整个脚本,但是遇到了这个问题:
function a() {
'use strict';
var string;
string = string.replace(/\x00*/g, '');
}
它抛出以下异常:
Unexpected 'x' after '\'.
string = string.replace(/\x00*/g, '');
旧版本在这方面没有报错,虽然我知道这是beta版,但我期望它的工作效果应该和旧版本一样好。\x00
代表null字符。
那么,这是ECMAScript 6的变化吗?还是只是JSLint的错误?我真的做错了什么吗?
/[\x00]*/g
没有出现错误。 - Deadooshka/\u0000/
(JSLint似乎喜欢这个)因为ECMA-262明确允许四位十六进制值,而像\x00
这样的两位数值则不行(据我所知)。然而,这会抛出一个错误:“null不是一个对象”,你必须使用/\u0000*/
。 - RobG\0
、\u0000
和\x00
都是有效的。我肯定会使用\u0000
,只是因为我希望验证器能够继续通过我的代码,但也许可以在Github上提出问题以了解Douglas的意见。 - WilliamTheBaker