10
votes

Pouvez-vous créer une chaîne JavaScript sans utiliser 'ou "citations?

J'ai un fichier JS avec du XML, où le XML est censé être converti en un mot par le serveur.

EG P>

ip = """<lang:cond><lang:when test="$(VAR{'ip_addr'})">$(VAR{'ip_addr'})</lang:when></lang:cond>"""


4 commentaires

Pourquoi ne récupérez-vous pas le XML séparément? De cette façon, vous n'avez pas besoin de vous embêter avec des citations.


La chaîne ne peut pas être créée sans citations. Alternative Way de créer une chaîne dans JavaScript est Var Str = nouvelle chaîne ("OK"), SH a maintenant la valeur "OK".


@Heera - cordes certainement peut créer être créé sans guillemets. string.fromcharcode (72,69,76,76,79) produit la chaîne Bonjour . (Je sais que ce n'est pas du tout utile dans ce cas, mais de toute façon ...)


Bien, bonne réponse et appréciez-la, mais comme vous l'avez dit, pas utile dans ce cas.


5 Réponses :


5
votes

en JavaScript, vous pouvez échapper à l'un ou l'autre type de citation avec un \ .

Par exemple: xxx

en particulier, votre bloc de code JavaScript doit être converti en: xxx

en général, je préfère toujours échapper aux guillemets au lieu d'avoir à basculer constamment des types de devis, en fonction du type de guillemets. utilisé à l'intérieur.


2 commentaires

Malheureusement, cela ne le fait pas, car le XML pour une raison quelconque ne fonctionne pas avec des citations évasées.


@Jeff - Lorsque le contenu est lu de la chaîne par JavaScript, les devis échappés ne seront pas décernés et le XML ne sera plus des guillemets évasés.



0
votes

Vous ne pouvez pas créer une chaîne sans utiliser de citation unique ou double, car même appeler l'objet de prototype () nécessite toujours que vous transmettez la chaîne.

Inside XML Vous utiliseriez CDATA, mais à l'intérieur de JS, vous devez simplement échapper au '\ "\" \ "' " \ '"de manière appropriée" < / p>


2 commentaires

Bien sûr, vous pouvez créer une chaîne sans utiliser de citations. Je ne dis pas que ce serait du tout utile pour ce problème, mais toujours string.fromcharcode (72,69,76,76,79) produit la chaîne Bonjour .


Aha, idée fantastique. Maintenant que vous mentionnez ce vecteur, je parie que vous pourriez vous pouvez quelques techniques d'obfuscription JavaScript pour le faire.



32
votes

J'ai dû créer des chaînes sans citations pour un projet également. Nous livrions un client exécutable JavaScript au navigateur pour un site Web interne. Les bandes d'extrémité de réception double et des guillemets simples lorsqu'ils sont affichés. Une façon dont j'ai trouvé des devis sur des citations consiste à déclarer ma chaîne comme une expression régulière. xxx


3 commentaires

Wow. C'est une astuce soignée. Cela m'a aidé à résoudre un problème où je devais représenter "une chaîne dans une chaîne, dans une chaîne, dans une chaîne". :) J'utilisais PHP pour renvoyer une chaîne JSON (1), qui comprenait des balises HTML (2), dont une nécessaire pour inclure un onclick = "" / Code> Attribut (3) qui a appelé un gestionnaire de méthode JavaScript nécessitant un paramètre de chaîne (4). Je manquais de façons d'intégrer des citations et pourtant ne pas casser l'analyseur JS, lorsque cette astuce intelligente m'a donné une troisième voie représentant tout. Radical, homme. Merci!


Merci! C'était tellement utile que vous ne pouvez même pas imaginer.


/ ceci ne contient aucun devis / .Source



10
votes

Utilisation de String prototype: xxx

en utilisant string.fromcharcode xxx

Générez des codes de caractère pour cela: xxx


0 commentaires

6
votes

Je cherchais une solution au même problème. Quelqu'un a suggéré de regarder https://developer.mozilla.org/en/docs / Web / javascript / référence / template_strings qui s'est avéré utile. Après avoir lu environ la moitié de l'article, il a déclaré que vous pouvez créer des chaînes avec le caractère de la ticelle arrière. (`)

Essayez ceci :) p>

p>

<div id="test" style="font-size:3em;"></div>


0 commentaires