-3

我的代码:

msg = msg.Replace(":)", "<a href=\"javascript:void(0)\" class=\"EmojiesIcon\" id=\"smiley\" title=\":)\" ></a>")
         .Replace(":v", "<a href=\"javascript:void(0)\" class=\"EmojiesIcon\" id=\"pacman\" title=\":v\"></a>");

当我在文本框中输入 :) 并点击发送时,结果msg总是:

<a href="javascript<a href="javascript:void(0)" class="EmojiesIcon" id="pacman" title=":v"></a>oid(0)" class="EmojiesIcon" id="smiley" title=":)" ></a>

而且我找不到为什么会出现这个问题。

4

1 回答 1

3
msg = msg.Replace(":)", "<a href=\"javascript:void(0)\" class=\"EmojiesIcon\" id=\"smiley\" title=\":)\" ></a>")

该行将产生:

"<a href=\"javascript:void(0)\" class=\"EmojiesIcon\" id=\"smiley\" title=\":)\" ></a>"

现在,当您进入下一行时,您将替换 的所有实例:v,其中包括javascript**:v**oid您从第一行获得的 ,例如:

 // msg is now the replaced string:
 msg = "<a href=\"javascript:void(0)\" class=\"EmojiesIcon\" id=\"smiley\" title=\":)\" ></a>";
 msg.Replace(":v",
            "<a href=\"javascript:void(0)\" class=\"EmojiesIcon\" id=\"pacman\" title=\":v\"></a>"
 );

因此,你得到:

msg = "<a href="javascript<a href="javascript:void(0)" class="EmojiesIcon"
id="pacman" title=":v"></a>oid(0)" class="EmojiesIcon" id="smiley"
title=":)" ></a>";

您可能需要考虑使用HtmlAgilityPack来处理 HTML 数据。它比简单的替换功能强大得多。

于 2013-09-24T06:53:26.960 回答