2016-07-30 10 views
-1

私は、その場で外部コンテンツとページの一部を置き換えようとしています。ここで文字列#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> 

は、どのように私はこの問題を取り除くのですか?

答えて

1

gsubブロック形式を使用してみてください:

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

0

This oneは、この場合のお手伝いをすることができます。

%q{jsContent}のようなものをお試しください。

関連する問題