我有一个非常大的字符串,需要转义其中的所有单引号,因此我可以将其提供给JavaScript而不用破坏它。
我无法控制外部字符串,因此无法更改源数据。

例:

Cote d'Ivoir  -> Cote d\'Ivoir

(实际的字符串很长,并且包含许多单引号)

我正在尝试通过在字符串上使用gsub来实现此目的,但无法使其正常工作:
a = "Cote d'Ivoir"
a.gsub("'", "\\\'")

但这给了我:
=> "Cote dIvoirIvoir"

我也尝试过:
a.gsub("'", 92.chr + 39.chr)

但是得到了相同的结果;我知道这与正则表达式有关,但我从来没有得到。

最佳答案

%q分隔符在这里很方便:

# %q(a string) is equivalent to a single-quoted string
puts "Cote d'Ivoir".gsub("'", %q(\\\')) #=> Cote d\'Ivoir

关于ruby - 用反斜杠单引号替换单引号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10551982/

10-12 14:26