JSLint "небезопасный ^" в регулярном выражении - PullRequest
43 голосов
/ 05 ноября 2010

JSLint сообщает Небезопасный '^' для следующей строки. Это почему? Или я просто буду жаловаться, когда захочу отменить класс персонажа?

// remove all non alphanumeric, comma and dash characters
"!$7s-gd,&j5d-a#".replace(/[^\w,\-]/g, '');

Ответы [ 3 ]

38 голосов
/ 05 ноября 2010

Это будет сделано только в том случае, если внизу выбрана опция:

Disallow insecure . and [^...] in /RegExp/

С Документы :

верно, если. и [^ ...] не должно быть разрешено в литералах RegExp. Эти формы не должны использоваться при проверке в защищенных приложениях.

Итак, ответьте на свой вопрос, если вы начнете регулярное выражение с ^ и оно будет проверено, да, оно будет выдавать ошибку каждый раз. Проблема заключается в использовании символов Юникода: вы допускаете почти все, что есть, и есть вероятность проблем с безопасностью или проверки в обход проблем. Вместо запрещения чего-либо (что можно обойти), разрешает только то, какие символы допустимы.

6 голосов
/ 24 июня 2014

regexp: true

в ваших настройках пера позволит

. and [^...] in /RegExp/

вы можете настроить правила, которые вы хотели бы использовать здесь

http://www.jslint.com/

0 голосов
/ 30 октября 2013

Попробуйте использовать \W вместо /^\w/

"!$7s-gd,&j5d-a#".replace(/\W/g, '');

В вашем конкретном случае это не сработает, потому что вы хотите оставить запятые и тире, но я думаю, что стоит упомянуть.

...