Javascript 从字符串中去掉逗号和其后的空格

Javascript 从字符串中去掉逗号和其后的空格,javascript,jquery,Javascript,Jquery,我正在使用一个邮政编码查找器,一些地址元素(例如County)有时会返回空的“”,“ 我希望从字符串中删除它们,以返回更可读的地址格式 示例数据是JSON: { "latitude": 53.381130218505859, "longitude": -1.4663739204406738, "addresses": [ "Crucible Enterprises Ltd, 55 Norfolk Street, , , , Sheffield, South Yorkshire",

我正在使用一个邮政编码查找器,一些地址元素(例如County)有时会返回空的“”,“

我希望从字符串中删除它们,以返回更可读的地址格式

示例数据是JSON:

{
"latitude": 53.381130218505859,
"longitude": -1.4663739204406738,
"addresses": [
    "Crucible Enterprises Ltd, 55 Norfolk Street, , , , Sheffield, South Yorkshire",
    "Crucible Theatre, 55 Norfolk Street, , , , Sheffield, South Yorkshire",
    "Sheffield Crucible Productions Ltd, 55 Norfolk Street, , , , Sheffield, South Yorkshire",
    "Sheffield Theatres Crucible Trust, 55 Norfolk Street, , , , Sheffield, South Yorkshire",
    "The City Of Sheffield Theatre Trust, 55 Norfolk Street, , , , Sheffield, South Yorkshire"
]
}
正如您所看到的,后面有很多逗号和空格,其中没有数据

我该怎么做呢?我目前的代码是:

$.ajax(
            {
                type: 'POST',
                url: '/address',
                dataType: 'json',
                data: { _token: token, postcode: postcode},
                success: function( data )
                {
                    $('.addresses').html('');

                    $.each(data, function(k, v)
                    {
                        address = v.replace(/\s+/g, ' ');

                        $('.addresses').append('<option value="">'+ address +'</option>');
                    })
                }
            }
        )
$.ajax(
{
键入:“POST”,
url:“/地址”,
数据类型:“json”,
数据:{令牌:令牌,邮政编码:邮政编码},
成功:功能(数据)
{
$('.addresses').html('');
$。每个(数据、函数(k、v)
{
地址=v.replace(/\s+/g',);
$('.address')。追加(''+address+'');
})
}
}
)

您可以使用
regex
替换额外的

试试这个

let str=“南约克郡谢菲尔德诺福克街55号坩埚企业有限公司”;
设regex=/(,\s){2,}/g

console.log(str.replace(regex,“,”)您可以使用正则表达式来清理它们

var str=“南约克郡谢菲尔德诺福克街55号坩埚企业有限公司”
var cleaned=str.replace(/,(\s,)+/,',')

log(已清理)
您也可以在不使用正则表达式的情况下执行此操作

const address = "The City Of Sheffield Theatre Trust, 55 Norfolk Street, , , , Sheffield, South Yorkshire"

const cleanAddress = address.split(", ")
    .filter(section => !!section)
    .join(", ");

// The City Of Sheffield Theatre Trust, 55 Norfolk Street, Sheffield, South Yorkshire
这使用了一个事实,即空字符串

将此添加到代码中:

$.ajax({
  type: "POST",
  url: "/address",
  dataType: "json",
  data: { _token: token, postcode: postcode },
  success: function(data) {
    $(".addresses").html("");

    $.each(data, function(k, v) {
     address = v.split(", ")
         .filter(section => !!section)
         .join(", ");

      $(".addresses").append('<option value="">' + address + "</option>");
    });
  }
});
$.ajax({
类型:“POST”,
url:“/地址”,
数据类型:“json”,
数据:{令牌:令牌,邮政编码:邮政编码},
成功:功能(数据){
$(“.addresses”).html(“”);
$。每个(数据、函数(k、v){
地址=v.split(“,”)
.filter(节=>!!节)
.加入(“,”);
$(“.address”).append(“”+address+“”);
});
}
});

这些逗号不是逻辑的一部分吗,比如列?在发送到服务器之前删除这些数据会不会破坏逻辑?这就是我要取回的数据。这里的想法是,它只是最终用户阅读的一个更整洁的字符串。是的,我理解。我使用的查找器用逗号分隔条目(=字段/属性/列)。例如
field1、field2、field3、field4
。如果删除逗号,则不知道字段4或字段3是否为空。如果这在您的流程中无关紧要,那么一切都很好:-)我建议您阅读API的规范,并获得相应的正确字段(如果提供的话)。这听起来更像是正确解析正确地址部分的返回的问题。逗号确实有其含义,如果删除了重复项,它将丢失。您应该像csv一样观看它,而不要删除逗号,因为它们很可能是逻辑的一部分。