替换逃脱"与逃脱'在红宝石串

时间:2014-08-07 22:11:37

标签: ruby string

我有一个ruby字符串,其中包含许多转义双引号\"我希望用逃脱的单引号取代\'但我无法解决如何做到这一点。

我一直在尝试使用gsub,但有点像mystring.gsub(' \\"',' \\'' )没有工作。

以下字符串(部分)的示例 - 我的问题是我不想替换所有的双引号,只是转义的... ...

仅供参考,注入的脚本在src中包含的工作正常,但我会动态提取内容并在视图中注入脚本:

而不是

<script src='...'></script> 

我在做

<script><%=raw @mystring%></script>

...

document.write("<div class=\"fsBody fsEmbed\">"+"\n");
document.write("<link rel=\"stylesheet\" type=\"text/css\" href=\"https://www.formstack.com/forms/css/3/reset.css?20140508\" />"+"\n");
document.write("    <link rel=\"stylesheet\" type=\"text/css\" href=\"https://www.formstack.com/forms/css/3/default.css?20140519\" />"+"\n");
document.write("    "+"\n");
document.write("<!--[if IE]>"+"\n");
document.write("    <link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"https://www.formstack.com/forms/css/3/ie.css?20140508\" />"+"\n");
document.write("<![endif]-->"+"\n");
document.write("<!--[if IE 7]><link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"https://www.formstack.com/forms/css/3/ie7.css\" /><![endif]-->"+"\n");
document.write("<!--[if IE 6]><link rel=\"stylesheet\" type=\"text/css\" media=\"all\" href=\"https://www.formstack.com/forms/css/3/ie6fixes.css\" /><![endif]-->"+"\n");
document.write("    <style type=\"text/css\">"+"\n");
document.write("        "+"\n");
document.write("    .fsBody .fsForm, .fsForm .fsSpacerRow .fsRowBody {"+"\n");

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

很可能他们没有逃脱。这就是当ruby在它们上执行inspect时显示带引号的字符串的方式(控制台默认执行inspect以显示命令的结果)。尝试:

mystring.gsub('"', "'")

答案 1 :(得分:0)

最后,我结束了使用prerender服务器来预呈现页面并包含脚本的内容。

我已经到了这样的地步:如果脚本是从src url中包含的,那么它可以工作,但是如果我试图引入源代码并将其包含在标签之间的页面中,它将无法正常工作。

使用prerender允许我在服务器端运行脚本并生成页面,然后将完成的部分返回给浏览器。