我无法正确格式化字符串。我正在从文件中读取字符串并尝试将它们用作js代码。
file_line = blah'blah"blah
string = line.gsub(/'/, "\\\'").gsub(/"/, "\\\"").dump
我希望输出为:
blah\'blah\"blah
但我似乎无法正确格式化。我尝试了很多东西。
答案 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