【问题标题】:handling Single quote in string in JS and Code behind在JS和代码后面处理字符串中的单引号
【发布时间】:2013-09-27 11:23:27
【问题描述】:

我的资源文件中有一个字符串,我在我的代码隐藏和 javascript 中使用它,但它在 JS 中抛出错误。

资源文件字符串是Par des changes de l'espace réservé

如何使用适用于所有三种情况的转义字符

1.JS(例如,我将 TD 的内部文本与该资源值进行比较)

2.Code behind(使用该资源值设置TD的内部文本)

3.ASPX(用资源值设置label的text属性)

如果是单引号?

如果我在资源文件中使用带有反斜杠转义字符的值,它将在代码后面使用该斜杠打印该值。 Par des changes de l\'espace réservé

【问题讨论】:

  • 你试过\'了吗?与"...de l\'espace..." 一样(尽管如果字符串用双引号引起来,则根本不需要转义撇号。)

标签: c# javascript asp.net globalization


【解决方案1】:

如果您使用后端代码来动态创建前端 JS,那么您的 JS 也会使用双引号字符串。

这个例子是伪代码,如果你把它写到一个 PHP 文件中,它可能真的可以工作(我知道你用的不是这个):

var myStringInJS = "<%=myStringFromResourceFile%>";

【讨论】:

    【解决方案2】:

    您可以使用反斜杠 (\) 转义字符:

    var a = 'Par des changements de l\'espace réservé';
    

    【讨论】:

    • 但是如果我在 aspx.cs 中打印这个字符串,它会将字符串打印为 'Par des changements de l\'espace réservé';..(将在后面的代码中打印 \)
    【解决方案3】:

    这可能非常棘手,所以我要做的是:

    1. 在服务器端代码中,始终使用双引号"
    2. Javascript 总是使用单引号'
    3. 在服务器端代码 javascript 字符串中,我总是使用 \' 转义单引号

    这样就不会发生任何混乱的代码。

    因此,您的资源文件中的值将是:

    Par des changements de l\'espace réservé
    

    导致服务器端字符串值为:

    string javascriptEscapedText = "Par des changements de l\'espace réservé";
    

    和javascript字符串值:

    var escapedText = 'Par des changements de l\'espace réservé';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-28
      • 2020-09-23
      • 1970-01-01
      相关资源
      最近更新 更多