У меня есть этот код:
a = "xyz"
g = "abcd " & a
После запуска значение g
равно abcd xyz
.
Тем не менее, я хочу котировки вокруг значения a
в g
. После запуска кода g
должен быть abcd "xyz"
.
Как я могу это сделать?
У меня есть этот код:
a = "xyz"
g = "abcd " & a
После запуска значение g
равно abcd xyz
.
Тем не менее, я хочу котировки вокруг значения a
в g
. После запуска кода g
должен быть abcd "xyz"
.
Как я могу это сделать?
Вы можете избежать удвоения кавычек
g="abcd """ & a & """"
или напишите явный вызов chr()
g="abcd " & chr(34) & a & chr(34)
Вам нужно использовать двойные двойные кавычки, чтобы избежать двойных кавычек (lol):
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"/>