我有一个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");
有人可以帮忙吗?
答案 0 :(得分:1)
很可能他们没有逃脱。这就是当ruby在它们上执行inspect
时显示带引号的字符串的方式(控制台默认执行inspect以显示命令的结果)。尝试:
mystring.gsub('"', "'")
答案 1 :(得分:0)
最后,我结束了使用prerender服务器来预呈现页面并包含脚本的内容。
我已经到了这样的地步:如果脚本是从src url中包含的,那么它可以工作,但是如果我试图引入源代码并将其包含在标签之间的页面中,它将无法正常工作。
使用prerender允许我在服务器端运行脚本并生成页面,然后将完成的部分返回给浏览器。