我正在后端构建一个js文件以备将来使用,需要将宏转换为js代码。在下面的方法中,我的
gsub
一直工作得很好,直到我有了一个带有双引号的url。如果我有一个变量quote_type = "'"
,那么如何将其作为转义引号插入?换句话说..
"'"
变成 "\'"
,'"'
变成 '\"'
这是我的现有方法,我刚刚添加了quote_type
变量来尝试这个。def substitute_timestamp_macro!(string)
quote_type = string[0]
string.gsub('[timestamp]', '\' + new Date().getTime() + \'')
end
编辑:示例字符串为"https://doesntmatter.com/stuff/123;time=[timestamp]?"
编辑2:期望结果如下:
"https://doesntmatter.com/stuff/123;time=" + new Date().getTime() + "?"
这是实际结果:
"https://doesntmatter.com/stuff/123;time=' + new Date().getTime() + '?"
注意在我的gsub
中,我硬编码了一个转义的单引号。现在我想使用变量来匹配输入引号,所以如果是单引号,使用单引号,如果是双引号,使用双引号。
expand("...[timestamp]")
比这里的方法更安全、更通用,除非你要放入一些特定于Rails的数据。 - tadman