web-dev-qa-db-fra.com

Ajout de guillemets à une chaîne dans VBScript

J'ai ce code:

a = "xyz"  
g = "abcd " & a  

Après l'avoir exécuté, la valeur de g est abcd xyz.

Cependant, je veux des citations autour de la valeur de a dans g. Après avoir exécuté le code, g devrait être abcd "xyz" au lieu.

Comment puis-je accomplir cela?

53
sushant

Vous pouvez vous échapper en doublant les guillemets

g="abcd """ & a & """"

ou écrivez un appel explicite chr()

g="abcd " & chr(34) & a & chr(34)
90
tanascius

Vous devez utiliser des guillemets doubles pour échapper aux guillemets (lol):

g = "abcd """ & a & """"
15
Simon

Je fais habituellement ceci:

Const Q = """"

Dim a, g
a = "xyz"  
g = "abcd " & Q & a & Q

Si vous devez insérer des chaînes entre guillemets dans votre code et trouver l'approche ci-dessus bruyante ou illisible, vous pouvez également l'envelopper dans une fonction:

a = "xyz"  
g = "abcd " & Q(a)

Function Q(s)
  Q = """" & s & """"
End Function
8
Tomalak

La méthode traditionnelle pour spécifier les guillemets consiste à utiliser Chr(34). Ceci est résistant aux erreurs et n'est pas une abomination.

Chr(34) & "string" & Chr(34)
5
David Candy

Je ne pense pas pouvoir améliorer ces réponses car je les ai toutes utilisées, mais ma préférence est de déclarer une constante et de l'utiliser car cela peut être très pénible si vous avez une longue chaîne de caractères et que vous essayez de vous adapter au nombre correct. de citations et faire une erreur. ;)

0

Vous pouvez faire comme:

a="""xyz"""  
g="abcd " & a  

Ou:

a=chr(34) & "xyz" & chr(34)
g="abcd " & a  
0
Sarfraz

J'ai conçu une approche simple en utilisant des guillemets simples pour former les chaînes, puis en appelant une fonction qui remplace les guillemets simples par des guillemets doubles.

Bien sûr, cette approche fonctionne tant que vous n'avez pas besoin d'inclure de guillemets simples dans votre chaîne.

Function Q(s)

    Q = Replace(s,"'","""")

End Function

...

user="myself"
code ="70234"
level ="C"

r="{'User':'" & user & "','Code':'" & code & "','Level':'" & level & "'}"
r = Q(r)
response.write r

...

J'espère que cela t'aides.

0
Juan Carlos Plaza