2014-02-17 3 views
5

전체 문장을 포함하는 스크립트를 작성 중이지만 전체 문장에는 쉼표가 포함될 수 있습니다.쉼표가 포함 된 문자열에 대한 배열 - JavaScript

스크립트가 작동하는 방식 때문에 배열을 적어도 한 번 문자열로 변환해야합니다. 문자열을 원래 값으로 다시 분할하면 쉼표가 서로 충돌하기 시작합니다.

나는 이것을 고칠 방법을 찾아 낼 수 없으며 지금까지 아무런 성공을 거두지 못했습니다. 당신이 문자열로 변환하기 위해 배열에 .join()를 호출 할 때

var Data = ["This is a normal string", "This string, will cause a conflict.", "This string should be normal"]; 

// The data gets sent to a background script, in string form and comes back as this 
var Data = "This is a normal string, This string, will cause a conflict., This string should be normal"; 
Data = Data.split(","); 

// Results in 4 positions instead of 3 
Data = ["This is a normal string", "This string"," will cause a conflict.", "This string should be normal"]; 
+5

을 제공하여 코드 – Pavlo

+1

몇 가지 예와 현재 코드를 제공해야합니다. 우리는 지금까지 작성한 내용을 추론 할 수 없습니다. – Andy

+0

쉼표를 결합 구분 기호로 사용하지 마십시오? .join (">>><<<") –

답변

4

요는 구분 기호를 지정 UCAN : 나는 크롬 플러그인 함께 일하고 있어요

,이 무슨의 작은 예입니다. 예를 들어

은 :

["Hello,","World"].join("%%%"); // "Hello,%%%World" 

당신은 다음 떨어져 다시 휴식을 위해 "%%%" (.split("%%%"))에 따라 분할 할 수 있습니다.

배열의 각 요소 (모든 줄)에 동작을 적용하려면 .join을 호출 한 다음 다시 .split을 호출하면 안됩니다. 직렬화 "자신의 롤"안하고 JSON.parse 년에 지어진 h2oooooo 같은 JSON.stringify 방법이 제안 사용 - 당신의 목표는 대신 처리의 직렬화 인 경우

var asLower = ["Hello","World"].map(function(line){ return line.toLowerCase(); }); 
// as Lower now contains the items in lower case 

또는, 대신, 당신은 예를 들어, 배열 방법을 사용할 수 있습니다 .

+1

문장 중 하나에 '%%%'문구가 포함되면 어떻게 될까요? – Bergi

+0

@Bergi +1 물론 문자열에 나타나지 않는 구분 기호를 선택해야합니다. 고마워, 고마워. 또한 나는 이것이 "Y"문제 OP가 가지고 있다고 생각하는 것을 해결하기 위해 일반적으로 선호하는 접근법이 아니라는 것을 분명히했습니다. (그러나 나는 말할 수 없습니다). –

3

당신은 당신이 동일한 다시 올 것이다 입력 객체/어떤 배열 (그리고 그것은 또한 부울, 정수와 함께 작동, 수레 등)에 있는지 확인하는 JSON.stringify(array)JSON.parse(json)를 사용할 수 있습니다

var data = ["This is a normal string", "This string, will cause a conflict.", "This string should be normal"]; 

// The data gets sent to a background script, in string form and comes back as this 
data = JSON.stringify(data); 
console.log(data); 
// ["This is a normal string","This string, will cause a conflict.","This string should be normal"] 

data = JSON.parse(data); 
console.log(data); 
// ["This is a normal string", "This string, will cause a conflict.", "This string should be normal"] 
관련 문제