Терпеть. и [^ ...] в / RegExp / - PullRequest
       16

Терпеть. и [^ ...] в / RegExp /

4 голосов
/ 14 декабря 2011

Похоже, что JSlint недавно добавил опцию:

"терпеть. И [^ ...] в /RegExp/".

Почему использование . или ^ в регулярных выражениях было бы плохо?

1 Ответ

5 голосов
/ 14 декабря 2011

С документации JSLint :

Они соответствуют большему количеству материала, чем можно было бы ожидать, что позволяет злоумышленникам перепутать приложения. Эти формы не должны использоваться при проверке в защищенных приложениях.

Похоже, что это основано на философии, которая заключается в том, чтобы конкретно указывать, что вы разрешаете вместо того, чтобы разрешать что-либо (включая многобайтовые и непечатаемые символы) с . или разрешать что-либо, кроме x, y и z (как [^…] означает )

С список рассылки JSLint :

Смысл этого в том, что некоторые люди не понимают, что . и [^...] означают в регулярных выражениях, так что это заставляет их код принимать что-то действительное, если это не так, или отклонить что-то действительное.

...