【问题标题】:Escaping javascript variable double quotes转义 javascript 变量双引号
【发布时间】:2012-07-28 00:10:40
【问题描述】:

我正在使用 Ajax 调用从数据库中获取一些变量数据。 我存储在数据库中的一些数据包含双引号 (")。

当我试图显示变量时:

value="'+ucontent+'"

字符串在中间被切断(当然)

我尝试过使用 escape() 但我得到了一个不可读的结果 - 有 %4%2 等...

我怎样才能转义变量中的双引号并仍然保持可读的字符串... 顺便说一句 - 我使用的是 UTF8 字符。

【问题讨论】:

  • 你能添加更多代码吗?比如你是如何处理 ajax 响应并在服务器上生成它的?
  • 引号应该已经是 JavaScript 数据,所以不清楚问题出在哪里。你想在哪里显示变量? value 是您要与 innerHTML 一起使用的 HTML 属性吗?
  • 你试过用其他字符替换双引号吗??
  • 什么是服务器端语言?
  • 你想在什么时候显示值? ajax调用后?数据从何而来?您如何尝试显示数据?

标签: javascript escaping


【解决方案1】:
decodeURIComponent() 

可能会有帮助

转义实际上是用十六进制转义序列替换一些字符。 这就是为什么你得到像 %4%2 这样的不可读字符串的原因。

【讨论】:

    【解决方案2】:

    取决于您使用的服务器端的语言。

    如果是php,则使用json_encode对响应字符串进行编码。

    如果是ruby(rails),则使用escape_javascript转义响应字符串。

    【讨论】:

      【解决方案3】:

      如果您不使用编码器,则可以只使用\"。见this

      【讨论】:

      • 我无法添加它,因为它是用户输入......我正在接受用户输入并将其转移到表单上的另一个输入。我想使用类似 PHP 的 addlashes ...
      • @liorr 如果你正在处理它,你当然可以添加它:) 所以当你“接受用户输入并传输它”时,你可以随意处理用户输入.在您的 Javascript 中,您将用户输入粘贴在一个变量中,然后使用 replace 或等效项。
      猜你喜欢
      • 2014-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-15
      • 2020-11-26
      • 1970-01-01
      • 1970-01-01
      • 2013-06-17
      相关资源
      最近更新 更多