替换 c# 中的字符串问题

本文关键字:字符串 问题 替换 | 更新日期: 2023-09-27 18:32:43

我的代码:

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>

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

替换 c# 中的字符串问题

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 数据。它比简单的替换功能强大得多。