【问题标题】:String.Replace doublequotes with singleqoutesString.用单引号替换双引号
【发布时间】:2014-09-25 16:25:27
【问题描述】:

我正在从数据库中获取 iFrame 代码并将其分配给一个字符串

var videoCode = details.Tables["MarketingDetails"].Rows[0]["MarketingVideo"].ToString();

videoCode=videoCode.Replace("\"","'");    

调试时videocode的值为:

<iframe width="420" height="315" src="//www.youtube.com/embed/8GRDA1gG8R8" frameborder="0" allowfullscreen></iframe>

当我尝试执行替换时," 的值保持不变。如何正确地将双引号替换为单引号?

【问题讨论】:

  • 你在字符串的哪里看到"\" 反斜杠videoCode=videoCode.Replace("\"","'"); 使用调试器检查这个值并准确粘贴它在这行var videoCode = details.Tables["MarketingDetails"].Rows[0]["MarketingVideo"].ToString();之后的内容
  • 如何在替换中使用双引号? @DJKRAZE
  • @CoreyToolis 抱歉,您还需要转义单个刻度。已更正。如果未分配,也将字符串分配为替换将不会替换字符串的值。 string x = string.Format("{0} {1}", '\"', '\''); Console.WriteLine(x); x = x.Replace('\"', '\''); Console.WriteLine(x); 输出为 " ' ' '
  • @CoreyToolis 要解析您的 html,您可以使用真正的 Html 解析器,例如 HtmlAgilityPack。无需字符串技巧即可获得src BTW:对于您的简单情况,Regex 也足够了..
  • I am thinking if they are single quotes it may work correctly 典型XY-Problem

标签: c# string iframe


【解决方案1】:

这是一种非常有效的解决方法,但却是一种解决方法。

char doubleQuote = '"';

char singleQuote = '\'';

viedeoCode = VideoCode.Replace(doubleQuote,singleQuote);

【讨论】:

  • 我会将其修改为char doubleQuote = '\"';,但真正创建对象是多余的(我认为*),因为可以插入转义符。
  • 你可能是对的,只是它的编写方式非常令人困惑,尤其是 DJKRAZE 的回答。我从不反对添加 1-2 行以使其更简单和不那么优雅。
【解决方案2】:

原来我需要对从数据库中提取的值使用 HtmlEntitys DeEntitize。

videoCode = HtmlEntity.DeEntitize(videoCode);

【讨论】:

    猜你喜欢
    • 2021-08-12
    • 1970-01-01
    • 2022-06-20
    • 2018-05-12
    • 1970-01-01
    • 1970-01-01
    • 2018-11-18
    • 2018-09-23
    • 2011-01-26
    相关资源
    最近更新 更多