我的代码:
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>
我无法找到为什么会出现这个问题。
答案 0 :(得分: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数据。它比简单的替换功能强大得多。