Pourquoi est-ce que JSLint renvoie un 'Bad échappement' sur la ligne JavaScript suivante?Pourquoi JSLint renvoie-t-il un 'mauvais échappement' sur cette ligne de code?
param = param.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
De la documentation JSLint je pensais que ce serait ok car le littéral regex est précédée par une parenthèse:
Les expressions régulières sont écrites dans un laconique et notation cryptique. JSLint recherche les problèmes susceptibles de provoquer des problèmes de portabilité . Il tente également de résoudre les ambiguïtés visuelles en recommandant échappement explicite.
La syntaxe de JavaScript pour les littéraux d'expression normaux surcharge le caractère/ . Pour éviter toute ambiguïté, JSLint attend à ce que le caractère précédant une expression régulière littérale est un (ou = ou: ou, caractère
Pourquoi utilisez-vous des classes de caractères pour des caractères uniques? –
Etes-vous sûr que "Mauvais échappement" fait référence au caractère précédant une expression régulière? Le message d'erreur et votre description ne semblent pas correspondre. – Joey
@Johannes: Il ne se réfère pas aux expressions régulières, mais je peux voir comment on pourrait penser cela. C'est la seule section dans les instructions où "échappement" est mentionné. – Guffa