是否有可能在经典asp中获取多行字符串(我认为vbscript是语言)?
我想要一个像python或groovy中的多行字符串:
def str =“”“你好 我是一个 多 字符串 “”“
我搜索了很多但没有找到解决方案。
也欢迎变通方法。
顺便说一下:我在javascript中遇到了同样的问题,并用保存在变量中的函数及时解决了。这个函数有一个多行注释,所以我可以通过使用正则表达式的注释除外。这样的事情:
var multilinestr = function() {
/*
hello
I am a multiline
string
*/
}
在Regex之后我得到一个包含以下内容的字符串:
hello
I am a multiline
string
谢谢。
编辑:
我想我错过了一个非常重要的观点。 我的客户是你为他的脚本使用类似“预处理器”的东西。 它看起来像这样:
Dim str
str = "<%std_text%>"
“预处理器”交换“&lt;%std_text%&gt;”带有来自数据库的文本。 但是这篇文章已经打破了,所以我不能只将“&amp; vbNewline”放到行尾。 这意味着在“预处理”后它看起来像这样:
Dim str
str = "hello
I am a multiline
string"
无论如何都要在字符串中输入这个“文本”吗?
如果我能写出这样的东西(groovy):
def multistr = """<%std_text%>"""
处理后的:
def multistr = """hello I am a multiline string"""
太棒了!
答案 0 :(得分:7)
蟒:
text = """"
hello world
this is some text
"""
的VBScript:
text = "" & vbcrlf &_
"hello world" & vbcrlf &_
"this is some text" & vbcrlf
您还可以编写自定义字符串缓冲类等。
with new StringBuffer
.writeline "hello world"
.writeline "this is some text"
result = .as_string
end with
Just KISS ...我的意思是脚本语言的'预处理器'?听起来不太好......
如果你真的需要使用预处理器(i18n?),你需要修改它,以便用“&amp; vbcrlf&amp;”替换所有换行符。
答案 1 :(得分:3)
你能否在字符串中添加回车符?
Dim myString : myString = "Line 1" & vbCrLf & "Line 2"
...等
答案 2 :(得分:2)
你想要多行发送到浏览器的纯文本是多行吗?或者您希望渲染的文本是多行的吗?
如果是前者,a solution like Mick's有效。您可以使用vbCrLf
或vbNewLine
在发送到浏览器的文本中创建新行。 IIRC是后者的首选,因为它提供了适合客户的回车或回车/换行。
Dim myString : myString = "hello" & vbNewLine & "I am a multi-line" & vbNewLine & "string"
如果是后者,您只需将<br />
放在您希望浏览器创建新行的位置即可。在这种情况下,您可能想要考虑为什么希望它显示您希望它显示的方式,因为可能(或可能不)是更好的方式。
答案 3 :(得分:2)
不幸的是,就我所知,你将无法按原样使用。您需要修改预处理器,将vbNewLine
替换为实际的vbNewLine
变量,而不是真正的换行符。 VB脚本中没有办法在不使用& _
的情况下连接多行上的字符串,这需要您在每行上执行此操作之前关闭字符串,这在此设置中似乎不可能。
答案 4 :(得分:0)
我所知道的只有两种方式,而且我已经这样做了10多年。
Dim x: x = "Hello" & vbNewline & "World"
或
Dim x: x = "Hello" & vbNewline & _
"World"
我猜也有黑客方式:
Dim x: x = Replace("Hello\nWorld", "\n", vbNewline)
答案 5 :(得分:0)
我能得到的最接近的是:
Dim multilineStr : multilineStr = Join(Array(_
"Begin" , _
" my" , _
" multiline", _
" string!" , _
"End" _
), vbNewLine)
Dim multilineStr : multilineStr = Join(Array(_
"Begin" , _
" my" , _
" multiline", _
" string!" , _
"End" _
), "<br/>")