首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JTemplate中转义字符串

在JTemplate中转义字符串
EN

Stack Overflow用户
提问于 2012-07-11 18:21:35
回答 2查看 359关注 0票数 1

我有一个JTemplate字符串,如下所示

代码语言:javascript
复制
<a class="add"  href="#" onclick="javascript:myfunction('{$T.Properties.Title}')" >

当我的参数$T.Properties.Title是一个包含单引号字符的字符串时,这段代码就会中断。

我可以在传递参数值时使用双引号字符,但是我的代码会因为双引号而中断。

如何对输入字符串进行转义,以便我的代码能够处理同时包含单引号和双引号的字符串?

EN

回答 2

Stack Overflow用户

发布于 2012-07-11 18:39:47

在创建对象时,需要使用反斜杠对引号进行转义:

代码语言:javascript
复制
Properties = {Title: 'I\'m lovin\' my quotes'};

编辑:

根据您的评论:

可悲的是,

无法控制源代码。:( JSON来自第三方站点

您可以尝试使用setTemplate(s, [], {filter_params: true});

根据the docs的说法,它使用的是escapeHTML --但我没有尝试过,我也不确定它是如何工作的。

查看这个关于使用filter_data转义HTML的问题:jtemplates-html-in-variables

或者在收到JSON对象后尝试转义引号。我相信在PHP中你可以使用json_encode --请看这里:json-parse-error-with-double-quotes

此处介绍的其他解决方案:javascript-how-escape-quotes-in-a-var-to-pass-data-through-json

票数 0
EN

Stack Overflow用户

发布于 2013-02-23 03:51:50

我也遇到了同样的问题,最后我做的就是跳过java脚本中的引号。

以下是我的代码。

在模板中:

代码语言:javascript
复制
$('#content').setParam('getUrl', getUrl);

在HTML中;在模板中。

代码语言:javascript
复制
href="{$P.getUrl($T.RESULTS.URL)}"

JS方法:

代码语言:javascript
复制
function(theLink){
  return theLink.replace(/\"/g, "%22");

  //If you want to escape all the characters use the following
  return escape((theLink))
}

干杯..:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11430534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档