2012-03-09 3 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 문자열 상수 오류 "그리고 나는 단지 주위에 방법을 알아낼 수 없습니다!

내가 자바 스크립트에 대한 정보를 전달하는 데 사용하고 무엇을 :

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"] 

그러나, 당신은 또한 당신의 자바 스크립트 문자열을 구축 할 때 c[1].inspect 대신 c[1]를 사용하여 문제를 해결할 수 있습니다. inspect를 사용하면 따옴표가 포함 된 문자열과 문자열 안에 따옴표를 이스케이프하는 백 슬래시가 인쇄됩니다.

+0

+1 빨리 입력하십시오. – NullRef

+0

.inspect를 사용하면 순수한 genious !! 그리고 슬프게도 나를 위해 아주 간단한 해결책을 ... 나는 당신의 제안의 나머지 부분과 함께 다른 시간에 편리하게 올지도 모를 놀 것입니다. Emily에게 감사합니다! – 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

관련 문제