【问题标题】:How to handle a string with quotes in it?如何处理带有引号的字符串?
【发布时间】:2014-01-20 09:25:50
【问题描述】:

我有一个 java 脚本函数,我通过它调用:

 <a href='javascript:void(0)' onclick='javascript:onEditRevPrepare("   <%#Convert.ToString(Eval("ReviewTitle"))%>">

问题是当Eval("ReviewTitle") 中包含单引号或双引号时,函数不会被调用。

我认为问题是由于(不确定是否因为这个):

Convert.Tostring(....)

但我还需要在将其传递给 javascript 函数之前将其转换为字符串。

我能做什么?

Javascript 函数:

function onEditRevPrepare(revTitle)
{

...
...
}

【问题讨论】:

  • Eval 不是 C# 函数,所以你想在那里做什么?转义字符串? String.Replace 就足够了(仅替换您用作字符串分隔符的字符,例如 \' 而不是 ' 如果 ' 是您的字符串分隔符)。
  • @Adriano 但我想将字符串按原样传递给 javascript 函数(带有“”或 ')... eval 在 asp.net 中
  • 所以Convert.ToString(Eval("ReviewTitle")).Replace("\"", "\\\"") 应该正确转义
  • @Adriano 等一下先生,我会试试这个

标签: c# javascript asp.net .net


【解决方案1】:

您可以尝试使用&amp;quot;

Live Demo

onclick='javascript:onEditRevPrepare(&quot;<%#Convert.ToString(Eval("ReviewTitle"))%>&quot;'

【讨论】:

  • 它给你任何错误你能告诉我生成的脚本吗?
  • phh,,先生,我正在相应地编辑它,请等我
  • 如果您可以分享生成的用于锚标记的 html,那么我可能可以帮助您。
  • 你必须用反斜杠转义单引号,jsfiddle.net/rajaadil/2Eyag/2
  • 先生,在我的情况下,我怎样才能动态地找到 ' 或 "" 存在于那里?
【解决方案2】:

您面临一些特定值或函数根本没有调用的问题?请澄清一下。

我想问题不在于 " 就好像方法根本没有调用一样。试试这个,如果仍然有问题,请告诉我。

<a href='javascript:void(0)' onclick='javascript:onEditRevPrepare(" + <%#Convert.ToString(Eval("ReviewTitle"))%> + ">

更新

我认为问题在于您没有使用从onclick 调用的) 关闭您的函数,并且还将'(如果有)替换为&amp;#39;。应该是这样的

<a href='javascript:void(0)' onclick='javascript:onEditRevPrepare("<%#Convert.ToString(Eval("ReviewTitle"))%>).Replace("'", "&#39;")">

谢谢

【讨论】:

  • 是的,当字符串中包含 " 或 ' 时,函数根本不会被调用
  • @SagarS.Dhanorkar:查看我更新的答案,让我知道它是否适合您?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-23
  • 2015-09-16
  • 2022-01-10
  • 2018-04-27
  • 1970-01-01
  • 2013-11-21
  • 1970-01-01
相关资源
最近更新 更多