私はこのコードを持っています:
a = "xyz"
g = "abcd " & a
実行後のの値はg
ですabcd xyz
。
ただし、a
inの値を引用符で囲みますg
。コードを実行した後、代わりにg
する必要がありabcd "xyz"
ます。
どうすればこれを達成できますか?
私はこのコードを持っています:
a = "xyz"
g = "abcd " & a
実行後のの値はg
ですabcd xyz
。
ただし、a
inの値を引用符で囲みますg
。コードを実行した後、代わりにg
する必要がありabcd "xyz"
ます。
どうすればこれを達成できますか?
引用符を2倍にすることで脱出できます
g="abcd """ & a & """"
chr()
または明示的な呼び出しを書く
g="abcd " & chr(34) & a & chr(34)
二重引用符をエスケープするには、二重二重引用符を使用する必要があります(笑):
g = "abcd """ & a & """"
私は通常これを行います:
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
引用符を指定する従来の方法は、を使用することChr(34)
です。これはエラー耐性があり、忌まわしいものではありません。
Chr(34) & "string" & Chr(34)
あなたは次のようにすることができます:
a="""xyz"""
g="abcd " & a
または:
a=chr(34) & "xyz" & chr(34)
g="abcd " & a
私はこれらの答えをすべて使用したので改善できないと思いますが、長い文字列を持っていて正しい数に対応しようとすると本当に苦痛になる可能性があるため、定数を宣言してそれを使用することを好みます引用符のと間違いを犯します。;)
文字列を形成するときに一重引用符を使用し、次に一重引用符を二重引用符に置き換える関数を呼び出す簡単なアプローチを設計しました。
もちろん、このアプローチは、文字列内に実際の一重引用符を含める必要がない限り機能します。
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
..。
お役に立てれば。
二重引用符と三重引用符を使用するという答えは不十分であることがわかりました。ネストされたDO...LOOPを使用して、コードのASPセグメントを記述しました。文字列内に繰り返し引用符があります。コードを実行したとき:
thestring = "<asp:RectangleHotSpot Bottom=""" & bottom & """ HotSpotMode=""PostBack"" Left="""& left & """ PostBackValue=""" &xx & "." & yy & """ Right=""" & right & """ Top=""" & top & """/>"
出力は次のとおりです。<`asp:RectangleHotSpot Bottom =" 28
'Changing the code to the explicit chr() call worked:
thestring = "<asp:RectangleHotSpot Bottom=""" & bottom & chr(34) & " HotSpotMode=""PostBack"" Left="""& left & chr(34) & " PostBackValue=""" &xx & "." & yy & chr(34) & " Right=""" & right & chr(34) & " Top=""" & top & chr(34) &"/>"
出力:
<asp:RectangleHotSpot Bottom="28" HotSpotMode="PostBack" Left="0" PostBackValue="0.0" Right="29" Top="0"/>