Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 经典Asp中的多行字符串_String_Asp Classic - Fatal编程技术网

String 经典Asp中的多行字符串

String 经典Asp中的多行字符串,string,asp-classic,String,Asp Classic,在经典asp中是否有可能获得多行字符串(我认为vbscript是语言) 我想要一个类似python或groovy的多行字符串: def str=“”你好 我是一个 多行 字符串“” 我找了很多,但没有找到解决办法 解决办法也很受欢迎 顺便说一句:我在javascript中遇到了同样的问题,并用一个保存在变量中的函数及时解决了这个问题。这个函数中有一个多行注释,所以除了使用正则表达式的注释外,我可以遍历所有内容 大概是这样的: var multilinestr = function() { /*

在经典asp中是否有可能获得多行字符串(我认为vbscript是语言)

我想要一个类似python或groovy的多行字符串:

def str=“”你好 我是一个 多行 字符串“”

我找了很多,但没有找到解决办法

解决办法也很受欢迎

顺便说一句:我在javascript中遇到了同样的问题,并用一个保存在变量中的函数及时解决了这个问题。这个函数中有一个多行注释,所以除了使用正则表达式的注释外,我可以遍历所有内容

大概是这样的:

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脚本创建多行字符串是不可能的。