试图保留一些转义字符.. 但不是其他字符。 ruby rails

trying to keep some escape characters.. but not others. ruby rails

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

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

我希望输出为:

blah\'blah\"blah

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

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

这里发生了很多逃跑事件。老实说第一个我不是很懂,但是第二个很简单。我认为在第一个中我们要转义要添加的反斜杠,然后转义这两个反斜杠以避免 ruby 将它们解释为对字符串的引用。或者其他的东西。尝试进行单一级别的转义会产生以下结果:

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

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

line = %q{blah'blah"blah}

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

puts string

输出:

blah\'blah\"blah