String#gsub把替换项搞砸了



我正在尝试用外部内容动态替换页面的一部分。

这是source.html:

<!DOCTYPE html>
<html>
  <head>
    <%= foobar %>
  </head>
  <body>
    This is body
  </body>
</html>

以及替换字符串inject.js:

var REGEXP  = /^'$/i; var foo = 1;

一个ruby代码,通过组合两者来输出文件。

pageContent = File.read('./source.html')
jsContent = File.read('./inject.js');
output = pageContent.gsub("<%= foobar %>", jsContent)
File.open('./dest.html', "w+") do |f|
  f.write(output)
end

然而,由于inject.js中的',我得到了混乱的dest.html

<!DOCTYPE html>
<html>
  <head>
    var REGEXP  = /^
  </head>
  <body>
    This is body
  </body>
</html>$/i; var foo = 1;
  </head>
  <body>
    This is body
  </body>
</html>

我该如何解决这个问题?

尝试使用gsub块形式:

output = pageContent.gsub("<%= foobar %>") { jsContent }

在这种情况下,这个可以帮助您。

你能试试%q{jsContent}吗。

相关内容

  • 没有找到相关文章

最新更新