试图保留一些逃脱角色......但不是其他人。红宝石铁轨

时间:2015-02-18 15:07:04

标签: ruby-on-rails ruby stringbuilder

我无法正确格式化字符串。我正在从文件中读取字符串并尝试将它们用作js代码。

file_line = blah'blah"blah
string = line.gsub(/'/, "\\\'").gsub(/"/, "\\\"").dump

我希望输出为:

blah\'blah\"blah

但我似乎无法正确格式化。我尝试了很多东西。

2 个答案:

答案 0 :(得分:2)

我使用一个gsub匹配'",以及一个块来添加\

line = %q{blah'blah"blah}

string = line.gsub(/["']/) { |m| "\\#{m}" }
#=> "blah\\'blah\\\"blah"

puts string

输出:

blah\'blah\"blah

答案 1 :(得分:0)

string = "blah'blah\"blah"
puts string.gsub(/'/,"\\\\'").gsub(/"/,'\"') # => blah\'blah\"blah

这里有很多逃避现象。说实话,我真的不了解第一个,但第二个很简单。我想在第一个中我们要逃避我们想要添加的反斜杠,然后转义那两个反斜杠以避免ruby将它们解释为对字符串的引用。或者其他的东西。尝试进行单一级别的转义会产生这样的结果:

puts string.gsub(/'/,"\\'").gsub(/"/,'\"') # => blahblah\"blahblah\"blah