59

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

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

実行後のの値はgですabcd xyz

ただし、ainの値を引用符で囲みますg。コードを実行した後、代わりにgする必要がありabcd "xyz"ます。

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

4

8 に答える 8

93

引用符を2倍にすることで脱出できます

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

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

g="abcd " & chr(34) & a & chr(34)
于 2010-05-31T09:22:57.263 に答える
17

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

g = "abcd """ & a & """"
于 2010-05-31T09:23:29.867 に答える
8

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

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
于 2010-05-31T09:27:32.633 に答える
8

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

Chr(34) & "string" & Chr(34)
于 2013-10-07T05:41:42.110 に答える
0

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

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

または:

a=chr(34) & "xyz" & chr(34)
g="abcd " & a  
于 2010-05-31T09:24:56.617 に答える
0

私はこれらの答えをすべて使用したので改善できないと思いますが、長い文字列を持っていて正しい数に対応しようとすると本当に苦痛になる可能性があるため、定数を宣言してそれを使用することを好みます引用符のと間違いを犯します。;)

于 2014-12-12T05:03:43.297 に答える
0

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

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

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

..。

お役に立てれば。

于 2015-02-25T22:43:10.207 に答える
-2

二重引用符と三重引用符を使用するという答えは不十分であることがわかりました。ネストされた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"/>
于 2013-07-28T14:58:09.987 に答える