代码之家  ›  专栏  ›  技术社区  ›  OemerA

经典asp中的多行字符串

  •  6
  • OemerA  · 技术社区  · 15 年前

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

    我想要像python或groovy中那样的多行字符串:

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

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

    工作区也很受欢迎。

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

    像这样的:

    var multilinestr = function() {
    /*
    hello
    I am a multiline
    string
    */
    }
    

    在regex之后,我得到了一个字符串,其中包含:

    hello
    I am a multiline
    string
    

    谢谢您.

    编辑:

    我想我错过了一个非常重要的问题。 我的客户是你用“预处理器”来处理他的脚本。 看起来是这样的:

    Dim str 
    str = "<%std_text%>"
    

    “预处理器”与来自数据库的文本交换“<%std_text%>”。 但此文本中有中断,因此我不能只在行尾加上一个“&vbnewline”。 这意味着在“预处理”之后,它看起来像这样:

    Dim str 
    str = "hello 
    I am a multiline
    string"
    

    有没有办法把这个“文本”串起来?

    如果我能写这样的东西(groovy):

    def multistr = """<%std_text%>"""
    

    “预处理”后:

    def multistr = """hello
    I am a multiline
    string"""
    

    太棒了!

    6 回复  |  直到 12 年前
        1
  •  2
  •   Shawn Steward    15 年前

    不幸的是,据我所知,你不能使用这个。您需要修改预处理器以替换 vbNewLine 与一个实际的 VBNeNeLink 变量而不是真换行符。在vb脚本中,如果不使用 & _ 这要求您在对每一行执行此操作之前关闭字符串,这在本设置中似乎是不可能的。

        2
  •  7
  •   Joost Moesker    15 年前

    蟒蛇:

    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&”。

        3
  •  3
  •   Matthew Groves    15 年前

    不能给字符串添加回车符吗?

    Dim myString : myString = "Line 1" & vbCrLf & "Line 2" …等

        4
  •  2
  •   Community CDub    8 年前

    是否要多行,因为发送到浏览器的纯文本是多行的?还是希望呈现的文本为多行?

    如果是前者, a solution like Mick's 作品。你可以用任何一个 vbCrLf vbNewLine 在发送到浏览器的文本中创建新行。iirc后者是首选的,因为它为客户提供合适的回车或回车/换行。

    Dim myString : myString = "hello" & vbNewLine & "I am a multi-line" & vbNewLine & "string"

    如果是后者,你只需要 <br /> 您希望浏览器创建新行的位置。在这种情况下,您可能会想一想,为什么您希望它以您希望的方式显示,因为可能(或可能不会)有更好的方式来显示它。

        5
  •  0
  •   Chris Haas    15 年前

    我只知道两种方法,我已经做了10多年了。

    Dim x: x = "Hello" & vbNewline & "World"
    

    Dim x: x = "Hello" & vbNewline & _
            "World"
    

    我想也有办法:

    Dim x: x = Replace("Hello\nWorld", "\n", vbNewline)
    
        6
  •  0
  •   Raphael    12 年前

    我能得到的最接近的是:

    Dim multilineStr : multilineStr = Join(Array(_
        "Begin"        , _
        "    my"       , _
        "    multiline", _
        "    string!"  , _
        "End"            _
    ), vbNewLine)
    
    Dim multilineStr : multilineStr = Join(Array(_
        "Begin"        , _
        "    my"       , _
        "    multiline", _
        "    string!"  , _
        "End"            _
    ), "<br/>")
    
    推荐文章