我有一个这样的数组:
["ee", "3/4\"", "22\"", "22\""]
我要删除逗号\"
或将其替换为"
,以便数组如下所示:
["ee", "3/4", "22", "22"]
或者这个:
["ee", "3/4"", "22"", "22""]
原因是我正在尝试将该数组从Ruby传递给JavaScript,但我不断收到“未终止的字符串常量错误”,我无法找到解决方法!
这是我用来将信息传递给JavaScript的方法:
cut_list="from_ruby_cut(\""+c[1]+"\")"
答案 0 :(得分:11)
要使用修改后的版本替换数组中的每个元素,例如替换不需要的字符,可以使用map!
函数。在阻止内部,使用gsub
替换不需要的"
字符。
array = ["ee", "3/4\"", "22\"", "22\""]
array.map!{ |element| element.gsub(/"/, '') }
array
#=> ["ee", "3/4", "22", "22"]
array.map!{ |element| element.gsub(/"/, '"') }
array
#=> ["ee", "3/4"", "22"", "22""]
但是,在构建JavaScript字符串时,您也可以使用c[1].inspect
代替c[1]
来解决问题。如果你使用inspect,它将打印包含封闭引号的字符串,并使用反斜杠来转义字符串中的引号。
答案 1 :(得分:0)
要按照您希望的方式修改数组map
和gsub。
a = ["ee", "3/4\"", "22\"", "22\""]
a.map{|e| e.gsub(/"/,'')}
=> ["ee", "3/4", "22", "22"]
或
a.map{|e| e.gsub(/"/,'"')}
=> ["ee", "3/4"", "22"", "22""]
但是,我不确定这是实现最终目标的最佳方式。