как исправить сообщение jslint Небезопасно '.' - PullRequest
13 голосов
/ 08 сентября 2011

jslint сообщает о небезопасном '.'.

в строке

html = /<body.*?>([\s\S]*)<\/body>/.exec(responseText);

Как это исправить?

Обновление

После тела и перед закрывающей скобкой могут быть атрибуты, так что \ s?не может использоваться.Javascript работает в браузере, используется jQuery.Какой лучший способ извлечь содержимое элемента тела из строки вместо этого?

Ответы [ 3 ]

17 голосов
/ 12 июля 2012

Вы можете попробовать что-то вроде этого, если вы действительно хотите, чтобы оно совпадало со всеми, и не хотите ошибку jslint.

var everything = /.*?/;// not jslint acceptable
var all = /[\w\W]*?/;// jslint acceptable

в основном это говорит любой символ слова и любой несловесный символ ... который в значительной степени охватывает все.

17 голосов
/ 01 августа 2013

Вы можете добавить regexp: true к параметрам jsLint.Просто добавьте строку в свой файл JavaScript, например:

/*jslint indent: 4, maxerr: 50, vars: true, regexp: true, sloppy: true */
5 голосов
/ 08 сентября 2011

Эта проверка в JSLint существует, потому что, если вы разрешите использовать любой символ (.) или любой символ, кроме указанного ([^x]), вы можете получить совпадения, которые вы не ожидали.Если у вас включена эта проверка в JSLint, вам нужно писать регулярные выражения, которые явно указывают, что должно быть сопоставлено.

Если вы не хотите отключать эту проверку и хотите, чтобы LINT был безошибочным, определите, что вы считаете правильным, если найти «y» of «body» и закрывающую угловую скобкуи таким образом напишите свое регулярное выражение.

...