【问题标题】:Cleaning up a string清理字符串
【发布时间】:2011-06-22 15:18:18
【问题描述】:

为了数据库存储和检索目的,我需要将以下字符串放在一行中:

{"id":8,"heading":"heading goes here","content":"<p>
    content goes here</p>
"}

我正在使用以下命令将其放在一行中:

Dim strContent As String = Request.Form("strContent").Replace(vbCr, "").Replace(vbLf, "")

这会将上面的字符串放在一行中,如下所示:

{"id":8,"heading":"heading goes here","content":"<p>    content goes here</p>"}

但是,在字符串中似乎有一个“制表符”字符

我该如何摆脱它?

【问题讨论】:

    标签: .net asp.net vb.net .net-3.5 string


    【解决方案1】:
    Request.Form("strContent").Replace(vbCr, "").Replace(vbLf, "").Replace(vbTab, "")
    

    事实上我想你可以使用vbCrlf 而不是两个替换即

    Request.Form("strContent").Replace(vbCrlf, "").Replace(vbTab, "")
    

    虽然我会说我认为以这种方式删除字符然后希望恢复原始 HTML 可能会充满问题。但也许不是。取决于您的具体问题。

    如果您想保留这些控制字符并将它们传递给客户端,您可以尝试类似

    Request.Form("strContent").Replace(vbCrlf, "%0d%0a").Replace(vbTab, "%09")
    

    这将使字符可以安全地使用 JSON 传输。

    【讨论】:

    • 我认为我需要这样做,除非有更好的方法。当我从数据库中提取字符串时,如果字符串包含我要删除的任何位,它会生成一个无效的 json 对象。
    【解决方案2】:

    您可以像使用vbCr 一样使用vbTab - 还有一个vbCrLf

    Request.Form("strContent").Replace(vbCrLf, "").Replace(vbTab, "")
    

    但是,数据库应该能够存储包含行和制表符的文本 - 除非有清理字符串的特定要求,否则您不应该这样做。

    顺便说一句 - 这个字符串是不是 HTML。

    【讨论】:

    • 我认为我需要这样做,除非有更好的方法。当我从数据库中提取字符串时,如果字符串包含我要删除的任何位,它会生成一个无效的 json 对象。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-29
    • 2022-01-06
    • 2010-11-17
    • 1970-01-01
    • 2023-03-16
    • 2021-02-16
    相关资源
    最近更新 更多