2012-03-09 7 views
6

私はこのような配列があります。配列要素から文字を削除するにはどうすればよいですか?

["ee", "3/4\"", "22\"", "22\""] 

を、配列は次のようになりますように、私は、コンマを削除\"&#34でそれを置き換えるためにどちらかの希望:

["ee", "3/4", "22", "22"] 

またはこの:

["ee", "3/4&#34", "22&#34", "22&#34"] 

私はRubyからその配列をJavaScriptに渡そうとしているのですが、私は "U nterminated文字列定数エラー "と私はちょうどその周りの道を把握することはできません!これは私がJavaScriptに情報を渡すために使用しているものです

は:

cut_list="from_ruby_cut(\""+c[1]+"\")" 
+2

JSONを使用しない特別な理由はありますか? –

+1

はい..私はJSONが何であるか分かりません。:)私はこのプログラミングのすべてでかなり新しいので、私の知識はかなり残念です。私はJSONを見て、それが助けになるかどうかを見ていきます。 – JoMojo

+0

'&#'エンティティはセミコロンで終わってはいけませんか? (たとえば、「"」) –

答えて

10

を修正した配列の各要素を交換するには、不要な文字を置き換えるよう、あなたはmap!機能を使用することができます。ブロック内で、不要な"文字を置き換えるには、gsubを使用します。

array = ["ee", "3/4\"", "22\"", "22\""] 

array.map!{ |element| element.gsub(/"/, '') } 
array 
#=> ["ee", "3/4", "22", "22"] 

array.map!{ |element| element.gsub(/"/, '&#34') } 
array 
#=> ["ee", "3/4&#34", "22&#34", "22&#34"] 

しかし、あなたはまた、JavaScriptの文字列を構築する際c[1].inspect代わりのc[1]を使用して、問題を解決できることがあります。 inspectを使用すると、囲まれた引用符を含む文字列と、文字列の中の引用符をエスケープするバックスラッシュが印刷されます。

+0

+1を入力すると高速になります。 – NullRef

+0

.inspectを使用して、純粋なgenious !!そして悲しいことに、私にとってはかなり簡単な解決策です...あなたの提案の残りの部分は、別の時間に便利になるかもしれないので、私は周りに遊びます。感謝エミリー! – JoMojo

0

mapとgsubを使用して配列を変更するには。

a = ["ee", "3/4\"", "22\"", "22\""] 
a.map{|e| e.gsub(/"/,'')} 
=> ["ee", "3/4", "22", "22"] 

または

a.map{|e| e.gsub(/"/,'&#34')} 
=> ["ee", "3/4&#34", "22&#34", "22&#34"] 

しかし、私はこれはあなたの最終目標を達成するための最良の方法であることを確認していません。

+0

私はそれが最良の方法だとは確信していませんが、ちょっと面白いことに何か新しいことを学んでいますね。 :)あなたの返信NullRefをありがとう。 – JoMojo

関連する問題