Javascript 需要在每个字段后面加逗号,并进行适当的验证

Javascript 需要在每个字段后面加逗号,并进行适当的验证,javascript,string,Javascript,String,我有3个字段供用户输入。。说textbox1,textbox2,textbox3。如果值不是空的,我需要这样表示它们: 奥尔巴尼,纽约,美国 最后一个文本框值之后不应包含逗号。我可以用关联数组来做,但问题是我找不到一种方法来检测它是否是最后一个值,然后逗号就不需要出现了 var addressObjToFormat= {}; addressObjToFormat.City = $("#companyentry").find("#City").val(); addressO

我有3个字段供用户输入。。说textbox1,textbox2,textbox3。如果值不是空的,我需要这样表示它们:

奥尔巴尼,纽约,美国

最后一个文本框值之后不应包含逗号。我可以用关联数组来做,但问题是我找不到一种方法来检测它是否是最后一个值,然后逗号就不需要出现了

    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);
   }
以上代码给出的结果如下:

美国纽约州奥尔巴尼

孟买,马哈尔施特拉,印度

我想要的是,如果文本框为空,它应该能够检查它是否是最后一个字段,并在每个值后面相应地放置逗号。或者有更好的方法吗?

您可以使用substring

或 您可以将所有值保存在一个数组中并使用array.join例如

var arr = ['item1','item3','item3','item4'];
 formattedAddress  = arr.join(' ,');
可以使用子字符串

或 您可以将所有值保存在一个数组中并使用array.join例如

var arr = ['item1','item3','item3','item4'];
 formattedAddress  = arr.join(' ,');
数组函数join()使用其第一个参数作为粘合剂,将其放入数组段之间


数组函数join()使用它的第一个参数作为粘合剂,在数组段之间插入。有多种方法可以做到这一点

在所有处理之后,您可以使用正则表达式修剪最后一个“

formattedAddress = formattedAddress.replace (/,$/g, "");
或者,您可以将字符串推入一个数组,然后
将它们全部加入

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

有多种方法可以做到这一点

在所有处理之后,您可以使用正则表达式修剪最后一个“

formattedAddress = formattedAddress.replace (/,$/g, "");
或者,您可以将字符串推入一个数组,然后
将它们全部加入

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

非常感谢你,它成功了。你能解释一下正则表达式是如何工作的吗?$表示字符的结尾。“,$”表示字符串末尾出现的“,”。我们将用一个空字符串替换它。请参见此处:它在某些条件下失败,例如lokhandwala和andheri(w),“lokhandwala和andheri(w),”。替换(/,$/g,”),为我返回“lokhandwala和andheri(w)”。您能告诉我您的输入和输出吗?如果任何输入有多个逗号,它将失败,例如:“lokhandwala,andheri(w),,,,,”将返回字符串,并将少一个尾随逗号作为“lokhandwala,andheri(w),,,,,,,,,,,,”非常感谢您的帮助。你能解释一下正则表达式是如何工作的吗?$表示字符的结尾。“,$”表示字符串末尾出现的“,”。我们将用一个空字符串替换它。请参见此处:它在某些条件下失败,例如lokhandwala和andheri(w),“lokhandwala和andheri(w),”。替换(/,$/g,”),为我返回“lokhandwala和andheri(w)”。您能告诉我您的输入和输出吗?如果任何输入有多个逗号,它将失败,例如:“lokhandwala,andheri(w),,,,,”将返回字符串,并将少一个尾随逗号作为“lokhandwala,andheri(w),,,,,,,”