2012-10-10 1 views
0

사용자 입력란에 3 개의 입력란이 있습니다. textbox1, textbox2, textbox3. 적절한 입력으로 각 입력란 뒤에 쉼표를 입력해야합니다.

알바니, 뉴욕, 미국

마지막 텍스트 상자 값은 그 이후에 쉼표가 야해 : 내가 뭘해야 값이 비어 있지 않은 경우이 같은 그들을 대표입니다. 하지 appear.Here 내가 위의 코드

var addressObjToFormat= {}; 
    addressObjToFormat.City = $("#companyentry").find("#City").val(); 
    addressObjToFormat.State = $("#companyentry").find("#State").val(); 
    addressObjToFormat.Country = $("#companyentry").find("#Country").val(); 

    var formattedAddress = $Utils.mapInfoMarkerAddressFormatter(addressObjToFormat); 


    mapInfoMarkerAddressFormatter = function mapInfoMarkerAddressFormatter(arraddressObjToFormat) { 
     var formattedAddress = ''; 
     for (var key in addressToFormatObj) {   
      if (addressToFormatObj.hasOwnProperty(key)) { 
       if (addressToFormatObj[key] != '') { 
        formattedAddress += addressToFormatObj[key] + ',';      
       } 
      } 
     } 
     alert(formattedAddress); 
    } 

을 무슨 짓을 내가 연관 배열 함께 할 수 있었다하지만 문제는 내가 그것을 마지막 값 인 경우 감지 할 수있는 방법을 찾아야을 couldnt하고, 그 후 쉼표가 필요 나 결과를주기 때문에 :

알바니, 뉴욕, 미국,

뭄바이, 마하라 슈트라 주, 인도,

내가 원하는 것은 그것의 마지막 필드가 텍스트 상자 인 넣다 경우 있는지 확인 할 수있을 것입니다 비어있는 채로두고 각 값 뒤에 쉼표를 적절하게 배치하십시오. 아니면 이것을 할 수있는 더 좋은 방법이 있습니까? 당신은 문자열을 사용할 수 있습니다

답변

1

, 당신은 단지 당신은 단지로 문자열을 밀어 수

formattedAddress = formattedAddress.replace (/,$/g, ""); 

또는 정규식을 사용하는 등 마지막 ','을 잘라내 수 있습니다 배열 다음에 모두 join입니다.

var tmp = []; 
for (var key in addressToFormatObj) { 
    if (addressToFormatObj.hasOwnProperty(key)) { 
     if (addressToFormatObj[key]) { // your condition 
      tmp.push(addressToFormatObj[key]); 
     } 
    } 
} 
var formattedAddress = tmp.join(','); 
+0

정말 고마워요. Regex가 어떻게 작동하는지 설명해 주시겠습니까? –

+0

$는 문자의 끝을 나타냅니다. ", $"는 문자열의 끝에 나오는 ","를 나타냅니다. 그리고 이것을 빈 문자열로 대체하고 있습니다. 여기를 참조하십시오 : https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/RegExp – prashanth

+0

lokhandwala, andheri (w), –

3

, jsfiddle

formattedAddress = formattedAddress.substring(0, formattedAddress.length-1); 

또는 당신이 배열의 모든 값을 저장하고 Array.join 등을 사용할 수 있습니다.

var arr = ['item1','item3','item3','item4']; 
formattedAddress = arr.join(' ,'); 
1
var formattedAddress = addressToFormatObj.join(','); 

배열 함수 조인() 배열 세그먼트 사이에 넣어 접착제로서의 제 파라미터를 사용한다. 모든 처리 후이

을 할 수있는 여러 가지 방법이 있습니다

관련 문제