Il est courant de devoir appeler une fonction javascript contenant une quote. Il faut alors échapper cet apostrophe (quote) par un antislash.
alert('Vous êtes sur le Royto\'s Blog');
En asp.net, on peut lancer un script après le chargement d’une page via la méthode Page.ClientScript.RegisterStartupScript.
this.ClientScript.RegisterStartupScript(this.GetType(), ScriptName, »<script>alert(‘Vous êtes sur le Royto\’s Blog’);</script> »);
Mon problème était que je construit mon message d’erreur dynamiquement et je voulait remplacer tous les apostrophe (‘) de mon message par antislash apostrophe (/’).
Facile me dirait vous.
Il suffit de faire :
msg.Replace("'", "\'");//-> Vous êtes sur le Royto's Blog
mais cela ne fonctionne pas car est également le caractère d’échappement en C#.
Bon il suffit alors de faire
msg.Replace("'", "\\\'");//-> Vous êtes sur le Royto\'s Blog
mais cela ne fonctionne pas non plus.
L’astuce vient du fait d’utiliser x27 qui est le code hexadécimale de l’apostrophe. Cela donne donc :
this.ClientScript.RegisterStartupScript(this.GetType(), ScriptName,<script>alert(‘ » + msg.Replace(« ‘ », « \x27 »)+ « ‘);</script>);