经典Asp中的多行字符串

时间:2009-12-16 14:15:50

标签: string asp-classic

是否有可能在经典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"""

太棒了!

6 个答案:

答案 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有效。您可以使用vbCrLfvbNewLine在发送到浏览器的文本中创建新行。 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/>")