【问题标题】:C# method to convert html-markup into JavaScript-compatible string将 html 标记转换为 JavaScript 兼容字符串的 C# 方法
【发布时间】:2010-09-07 21:08:02
【问题描述】:

我相信应该存在一种已知的转换方法:

   <div class="singlePane pane">
     <div class="tripleColumn"> <!-- TODO:  -->
     <div class="col">

    <div class="captionedLink">
     <div class="icon" style="background-position: -26px 0px;"> blah blah

进入这个:

    \r\n \u003Cdiv class=\"singlePane pane\"\u003E\r\n \u003Cdiv class=\"tripleColumn
\"\u003E \u003C!-- TODO --\u003E\r\n \u003Cdiv class=\"col\"\u003E\r\n 
\n\u003Cdiv class=\"captionedLink\"\u003E\n \u003Cdiv class=\"icon\" style=\"background-
position: -26px 0px\"\uBLAH BLAH

拜托,请告诉我。

提前致谢!

【问题讨论】:

  • 为什么要保留所有的空白?

标签: c# javascript jquery html


【解决方案1】:

我目前正在使用Rick Strahl's JavaScript encoding(稍作修改的版本)。 很适合我!

【讨论】:

    【解决方案2】:

    这绝不是最快的方法(静态 Regex.Replace 方法比 Regex 实例慢。但我这样做是为了将任何 html 转换为可用于 @987654322 的字符串@:

    string htmlResult = "/*string*/";
    htmlResult = Regex.Replace(htmlResult, @"\r\n", " ");
    htmlResult = Regex.Replace(htmlResult, @"\n", " ");
    htmlResult = Regex.Replace(htmlResult, @"\s{2,}", " ");
    htmlResult = Regex.Replace(htmlResult, @"\\", @"\\");
    htmlResult = Regex.Replace(htmlResult, @"[']", @"\'");
    

    这也消除了所有回车和不必要的空格。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-18
      • 2012-09-03
      • 2021-10-23
      • 2020-11-26
      相关资源
      最近更新 更多