Я пытаюсь проверить весь мой сценарий through the new JSLint, но с этим:Что не так с этим регулярным выражением? JSLint бросает ошибку
function a() {
'use strict';
var string;
string = string.replace(/\x00*/g, '');
}
Он бросает:
Unexpected 'x' after '\'.
string = string.replace(/\x00*/g, '');
Старая версия не приводит к возникновению ошибок с этим. Я понимаю, что он в бета-версии, но я бы ожидал, что он будет работать так же хорошо, как и старая версия. Например, \x00
обозначает нулевой символ.
Итак, это что-то, что изменилось с помощью ECMAScript 6? Это просто ошибка JSLint? Я действительно что-то делаю неправильно?
с '/ [\ x00] */g' не получил ошибок – Deadooshka
Да, я это заметил. Неправильно ли указывать символ регулярного выражения без скобок? – WilliamTheBaker
@ WilliamTheBaker-no. Вы также можете использовать '/ \ u0000 /' (что похоже на JSLint), поскольку четыре значащих шестнадцатеричных значения [* конкретно разрешены *] (http://ecma-international.org/ecma-262/5.1/#sec-6) ECMA-262, тогда как двузначные значения, такие как '\ x00', не являются (насколько я могу судить). Однако это порождает ошибку: «null не является объектом», вы должны использовать '/ \ u0000 * /'. – RobG