2012-02-21 3 views
0

모든 쉼표를 쉼표 및 공백으로 바꾸려고합니다. 수 Javascript Replace ","with ","

all_boxes_values = all_boxes_values.replace(",", ", "); 

// and... 

all_boxes_values = all_boxes_values.replace(/,\\/g, ', *'); 

가 처음 정상을 시도했지만 그것은 단지 쉼표의 하나 개의 인스턴스를 교체 실현, 그래서 (이전 SO 질문에서) 바닥을 시도했지만 :

내가 시도 것입니다 그것을 작동 시키십시오. 문자열에 쉼표가 처음부터 포함되어 있지 않을 수도 있습니다.

아이디어가 있으십니까?

UPDATED 이것은 함수이다. 아래 답변 중 하나를 추가했는데 여전히 작동하지 않습니다. 이제 콘솔 오류가 발생합니다. TypeError : Object A Gill에 'replace'메서드가 없습니다.

$('.name_boxes').live('click', function() { 
    var all_boxes = $('.name_boxes'); 
    var all_boxes_values = [] 
    for (var i = 0; i < all_boxes.length; i++) { 
     if (all_boxes[i].checked) { 
      all_boxes_values.push(all_boxes[i].value) 
     } 
    } 
all_boxes_values = all_boxes_values.replace(/,/g,", "); 
alert(all_boxes_values); 
}); 

답변

6

당신은 정규 표현식의 마지막 두 개의 백 슬래시가 없어야하고, *에 대한 이유가 없다. 다음 작품들.

all_boxes_values = all_boxes_values.replace(/,/g,", "); 
+1

+1 당신이 나를 때려 눕히면,이 대답은 제가 이해하기에 가장 쉽습니다. 그리고 내 생각의 과정이 나를 데려왔습니다. – dkroy

+2

왜 downvote? – kba

+1

정규식에서 쉼표를 이스케이프 할 필요가 없습니다. 그것은 메타 문자가 아닙니다. (그건 내가 그런 식으로 downvote하지 않을 것이라고, 그것은 쉼표를 인용 해 아프지 않을 것입니다.) – Pointy

2
all_boxes_values = all_boxes_values.split(',').join(', '); 
+2

[매우 나쁜 성능] (http://jsperf.com/replace-join2). – kba

+0

@James 당신이 당신의 손에 스노우 보드를 들고있는 눈 덮인 산 꼭대기에 있다고 상상해보십시오. 너는 산에서 내려 가기 시작한다. 결국 당신은 바닥에 도달 할 것입니다 -하지만 그것은 옳지 않다고 느끼십니까? – alfasin

0

은 당신이 원하는 것 같은데 :

all_boxes_values = all_boxes_values.replace(/, */g, ', '); 
1

크리스티안 안톤센의 대답은 원래 질문에 대한 최선의 답변입니다. 이 코드를 변경하면 코드에 따라 작동하지만 작동합니다. 배열에서 대체를 실행하려고하고 대체 위치를 이동 한 다음 대체하는 것으로 이동하면 수신중인 오류를 수정해야합니다.

$('.name_boxes').live('click', function() { 
    var all_boxes = $('.name_boxes'); 
    var all_boxes_values = [] 
    for (var i = 0; i < all_boxes.length; i++) { 
     if (all_boxes[i].checked) { 
      all_boxes_values.push(all_boxes[i].value.replace(/,/g,", ")); 
     } 
    } 
});