String 经典Asp中的多行字符串
在经典asp中是否有可能获得多行字符串(我认为vbscript是语言) 我想要一个类似python或groovy的多行字符串: def str=“”你好 我是一个 多行 字符串“” 我找了很多,但没有找到解决办法 解决办法也很受欢迎 顺便说一句:我在javascript中遇到了同样的问题,并用一个保存在变量中的函数及时解决了这个问题。这个函数中有一个多行注释,所以除了使用正则表达式的注释外,我可以遍历所有内容 大概是这样的:String 经典Asp中的多行字符串,string,asp-classic,String,Asp Classic,在经典asp中是否有可能获得多行字符串(我认为vbscript是语言) 我想要一个类似python或groovy的多行字符串: def str=“”你好 我是一个 多行 字符串“” 我找了很多,但没有找到解决办法 解决办法也很受欢迎 顺便说一句:我在javascript中遇到了同样的问题,并用一个保存在变量中的函数及时解决了这个问题。这个函数中有一个多行注释,所以除了使用正则表达式的注释外,我可以遍历所有内容 大概是这样的: var multilinestr = function() { /*
var multilinestr = function() {
/*
hello
I am a multiline
string
*/
}
Dim str
str = "<%std_text%>"
Dim str
str = "hello
I am a multiline
string"
在正则表达式之后,我得到了一个字符串,其中包含:
hello
I am a multiline
string
多谢各位
编辑:
我想我错过了一个非常重要的要点。
我的客户是你在他的脚本中使用类似“预处理器”的东西。
看起来是这样的:
var multilinestr = function() {
/*
hello
I am a multiline
string
*/
}
Dim str
str = "<%std_text%>"
Dim str
str = "hello
I am a multiline
string"
是否有任何方法可以获取字符串中的“文本”
如果我能写这样的东西(groovy):
那太好了 您不能在字符串中添加回车符吗
Dim myString:myString=“第1行”&vbCrLf和“第2行”
。。。etc我只知道两种方法,我已经做了10多年了
Dim x: x = "Hello" & vbNewline & "World"
或
我想这也是黑客的方式:
Dim x: x = Replace("Hello\nWorld", "\n", vbNewline)
是否希望多行作为发送到浏览器的纯文本中的多行?还是希望渲染的文本是多行的 如果是前者的话,那就行了。您可以使用
vbCrLf
或vbNewLine
在发送到浏览器的文本中创建新行。IIRC后者是首选,因为它为客户提供适当的回车或回车/换行
Dim myString:myString=“hello”&vbNewLine&“我是一个多行”&vbNewLine&“string”
如果是后者,您只需在希望浏览器创建新行的位置放置一个
。在这种情况下,您可能需要考虑为什么希望它以您希望的方式显示,因为可能有(也可能没有)更好的方式来显示。python:
text = """"
hello world
this is some text
"""
vbscript:
text = "" & vbcrlf &_
"hello world" & vbcrlf &_
"this is some text" & vbcrlf
您还可以编写自定义stringbuffer类等
with new StringBuffer
.writeline "hello world"
.writeline "this is some text"
result = .as_string
end with
只是亲吻。。。我是说脚本语言的“预处理器”?听起来不太好
如果您确实需要使用预处理器(i18n?),则需要对其进行修改,以将所有换行符替换为“&vbcrlf&”,不幸的是,据我所知,您将无法使用此程序。您需要修改预处理器,用实际的
vbNewLine
变量替换vbNewLine
,而不是真正的换行符。在VB脚本中,如果不使用&
,就无法在多行上连接字符串,这要求您在每行上关闭字符串之前关闭字符串,这在该设置中似乎是不可能的。我能得到的最接近的结果是:
Dim multilineStr : multilineStr = Join(Array(_
"Begin" , _
" my" , _
" multiline", _
" string!" , _
"End" _
), vbNewLine)
Dim multilineStr : multilineStr = Join(Array(_
"Begin" , _
" my" , _
" multiline", _
" string!" , _
"End" _
), "<br/>")
Dim multilestr:multilestr=Join(数组)(_
“开始”_
“我的”_
“多行”_
“弦!”_
“结束”_
),vbNewLine)
Dim MULTILIESTR:MULTILIESTR=Join(数组(_
“开始”_
“我的”_
“多行”_
“弦!”_
“结束”_
),“
”)
是否希望多行,因为发送到浏览器的纯文本是多行的?还是希望渲染的文本是多行的?我正在尝试不同的方法。我只是为了更好的理解而修改我的问题。抱歉,我在创建问题时应该发布此消息。预处理器是否可以执行任何其他逻辑,或者在从数据库中获取数据时,是否可以让数据库将换行符替换为“&vbNewline&”,但仍然无法回答以下问题:换行符是在发送到浏览器的文本中还是在浏览器呈现的文本中?此外,数据库中的文本是否包含断点,或者您是否需要在特定点插入它们?+1对于令人敬畏的JS黑客,这是一个启发!别忘了,经典的ASP/VBScript不允许您在声明变量的同一行中设置变量。哈哈哈,其实应该对它进行测试,这么长时间以来VB.Net比VBS做得更多!谢谢@annjr!没问题。最近我在这里遇到了一个VBScript问题,所以我想到了所有有趣的小怪癖。不过别忘了,经典的ASP/VBScript不会让你在声明变量的同一行中设置变量。@Anonhr:这些中断在来自数据库的文本中。希望这能回答你的问题。谢谢!我认为用VB脚本创建多行字符串是不可能的。