En c # et Ruby et beaucoup d'autres langages, vous pouvez désigner une chaîne pour ne pas avoir besoin de s'échapper.
en c # c'est comme ça
string s = @"\whatever\this\is";
les résultats sont imprimés
\whatever\this\is
ma question est, est-ce pris en charge sous une forme quelconque en javascript?
Réponse courte: Non
Réponse longue: Noooooooooooooooooooooooooooo
Je ne sais pas où vous voulez en venir, mais une façon de contourner le problème de l'évasion (etc.) est d'utiliser une astuce que John Resig semble beaucoup aimer. Vous incluez des blocs <script>
Dans une page, mais leur donnez un "type" comme "text/plain" pour vous assurer que le navigateur ne les remet pas à Javascript. Utilisez ensuite le texte du bloc de script pour ce que vous voulez.
<script id='a_string' type='text/plain'>
Here is some stuff.
There might be some \escape sequences in it.
</script>
Ensuite, vous pouvez récupérer cela avec $('#a_string').text()
(ou avec getElementById
si vous n'utilisez pas jQuery ou quelque chose comme ça).
edit: Voici l'explication de John Resig sur pourquoi déposer des trucs dans des blocs de script comme ça est une bonne idée:
Astuce: l'incorporation de scripts dans votre page dont le type de contenu est inconnu (c'est le cas ici - le navigateur ne sait pas comment exécuter un script texte/html) est simplement ignoré par le navigateur - et par les moteurs de recherche et les lecteurs d'écran . C'est un appareil de dissimulation parfait pour insérer des modèles dans votre page. J'aime utiliser cette technique pour les cas rapides et sales où j'ai juste besoin d'un petit modèle ou deux sur la page et je veux quelque chose de léger et rapide.
Tiré de cette page: http://ejohn.org/blog/javascript-micro-templating/
Les chaînes littérales sont disponibles via l'utilisation des fonctionnalités du langage ES6. Node v4.x prend désormais en charge ces derniers et environ 90% des autres ajouts ES6.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/template_strings
Dans JS, les littéraux de chaîne sont appelés chaînes de modèle. Et la syntaxe est assez simple.
Échappez juste aux évasions
var myCrazyString = "\\yes\\we\\have\\no\\bananas"
Je sais que c'est six ans de retard maintenant, mais j'ai une solution à cela;)
function literalString(regex) {
return ('' + regex).slice(1, -1);
};
O.innerHTML = literalString(/\whatever\this\is/);
<pre id=O>
Vous convertissez essentiellement une expression régulière en chaîne et supprimez les premier et dernier caractères.
Cela fonctionnera tant que vous ne lancez pas un \x
dans la chaîne!
var str = String.raw`\whatever\this\is`;
console.log(str);