web-dev-qa-db-ja.com

VBScriptで文字列に引用符を追加する

私はこのコードを持っています:

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

実行後、gの値はabcd xyz

ただし、agの値を引用符で囲みます。コードの実行後、gabcd "xyz"代わりに。

どうすればこれを達成できますか?

53
sushant

引用符を二重にしてエスケープできます

_g="abcd """ & a & """"
_

または明示的なchr()呼び出しを書く

_g="abcd " & chr(34) & a & chr(34)
_
90
tanascius

二重引用符をエスケープするには二重二重引用符を使用する必要があります(笑):

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

私は通常これを行います:

Const Q = """"

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

コード内で文字列を引用符でもっと頻繁にラップする必要があり、上記のアプローチがノイズが多いか読めない場合は、関数でラップすることもできます。

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

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

引用符を指定する従来の方法は、Chr(34)を使用することです。これはエラー耐性があり、忌まわしいものではありません。

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

私はそれらをすべて使用したので、これらの答えを改善できるとは思いませんが、私の好みは定数を宣言し、それを使用することです。引用符の間違い。 ;)

あなたは次のようにすることができます:

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

または:

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

文字列を形成するときに単一引用符を使用し、次に単一引用符を二重引用符に置き換える関数を呼び出す単純なアプローチを設計しました。

もちろん、文字列内に実際の単一引用符を含める必要がない限り、このアプローチは機能します。

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

...

お役に立てれば。

0