Предупреждение JsHint: литерал регулярного выражения можно спутать с '/='

У меня есть эта строка в моем коде Javascript:

var regex = /===Hello===\n/;

JsHint выдает мне предупреждение в этой строке:

A regular expression literal can be confused with '/='`

... но я не знаю, что не так с этим регулярным выражением? Как избежать этого предупреждения?


person Sonson123    schedule 08.11.2012    source источник
comment
Почему вы вообще используете здесь регулярное выражение?   -  person Andreas    schedule 08.11.2012
comment
g вы правы, пример неудачный. Мой реальный код имеет гораздо большее регулярное выражение, которое действительно должно быть регулярным выражением.   -  person Sonson123    schedule 08.11.2012


Ответы (1)


Проблема в том, что /= можно интерпретировать как деление и присваивание, а не начало литерала регулярного выражения.

Вы можете избежать этого предупреждения, используя вместо этого RegExp конструктор. :

var regex = new RegExp("===Hello===\n");

Кажется, нет какой-либо опции, которую вы могли бы установить, чтобы сообщить JSHint (или JSLint, если на то пошло) игнорировать /=, так что вы можете либо обойти это, либо проигнорировать предупреждение.

person James Allardice    schedule 08.11.2012
comment
Спасибо за объяснение, я не подумал о делениях. Я буду использовать ваше решение RegExp. - person Sonson123; 08.11.2012
comment
Я добавил немного больше информации об этой ошибке в статью на jslinterrors.com. - person James Allardice; 27.11.2012