JSLint "insecure ^" dans l'expression régulière

JSLint rapporte Insecure '^' pour la ligne suivante. Pourquoi donc? Ou va-t-il se plaindre quand je veux nier une classe de personnage?

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

    Cela ne fera que si vous avez l'option sélectionnée en bas:

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

    Du docs :

    Vrai si. Et [^ …] ne devrait pas être autorisé dans les littéraux RegExp. Ces formulaires ne doivent pas être utilisés lors de la validation dans des applications sécurisées.

    Donc, la réponse à votre question, si vous commencez une regex avec ^ et si elle est cochée, oui, elle lancera l'erreur à chaque fois. Le problème est avec les personnages unicode, vous autorisez à peu près n'importe quoi là-bas et il existe des problèmes de sécurité ou des problèmes de contournement de validation. Au lieu de ne pas autoriser quelque chose (qui peut être contourné), autorisez uniquement les caractères valides.

    regexp: true

    Dans vos options de peluches, permettra

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

    Vous pouvez configurer les règles que vous souhaitez utiliser ici

    http://www.jslint.com/

    Envisant d'utiliser \W au lieu de /^\w/

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

    Pour votre cas particulier, cela ne fonctionnerait pas parce que vous voulez quitter des caractères de virgule et de tiret, mais je pense qu'il convient de mentionner.