Si vous tentez d'utiliser certains caractères spéciaux en jQuery, par exemple dans vos noms de sélecteur, cela engendrera une erreur.
Exemple, le code suivant ...
$("#test=").attr("id");
... produira une erreur comme celle-ci :
Uncaught DOMException: Failed to execute '$' on 'CommandLineAPI': '#test=' is not a valid selector.
at <anonymous>:1:1
En effet, jQuery interdit un certain nombre de caractères dans le nom des sélecteurs :
#;&,.+*~':"!^$[]()=>|/
Heureusement, il est possible de passer outre. Pour cela, il suffit simplement de les échapper en utilisant un double backslash.
Pour vous faciliter la tâche, voici une regex que vous pourrez utiliser :
/([ #;&,.+*~\':"!^$[\]()=>|\/@])/
Ainsi, pour rendre fonctionnel l'exemple précédent, on utilisera le code suivant :
$("#test=".replace(/([ #;&,.+*~\':"!^$[\]()=>|\/@])/g,'\\$1')).attr("id");