【问题标题】:Escape apostrophe passed from code behind从后面的代码传递的转义撇号
【发布时间】:2025-12-17 02:55:02
【问题描述】:

在 ASPX 中,我在单击按钮时调用 JS 函数,从后面的代码中传入一个变量,如下所示:

... onclick="SelectEmpl('<%=employer.Name%>', '<%=employer.Surname%>', '<%=employer.Company%>')"

问题是,传递给 SelectEmpl 函数的所有参数都是字符串,并且可以包含撇号字符。如果发生这种情况,JS 撇号会过早配对并且评估失败。

我知道我需要以某种方式转义字符串中的撇号,但我不确定它们何时从 CB 传递。

谢谢

【问题讨论】:

    标签: javascript asp.net vb.net


    【解决方案1】:

    创建一个函数来转义撇号,然后在每个撇号周围调用它。比如:

    Shared Function RemoveQuotes(ByVal input As String) As String
      Return Replace(input, "'", "\'")
    End Function
    

    然后:

    ... onclick="SelectEmpl('<%=RemoveQuotes(employer.Name)%>', '<%=RemoveQuotes(employer.Surname)%>', '<%=RemoveQuotes(employer.Company)%>')"
    

    【讨论】:

    • 谢谢,我希望有一个更优雅的解决方案,但这满足了它的目的。 :)
    最近更新 更多