Javascript 从字符串中去掉逗号和其后的空格
我正在使用一个邮政编码查找器,一些地址元素(例如County)有时会返回空的“”,“ 我希望从字符串中删除它们,以返回更可读的地址格式 示例数据是JSON:Javascript 从字符串中去掉逗号和其后的空格,javascript,jquery,Javascript,Jquery,我正在使用一个邮政编码查找器,一些地址元素(例如County)有时会返回空的“”,“ 我希望从字符串中删除它们,以返回更可读的地址格式 示例数据是JSON: { "latitude": 53.381130218505859, "longitude": -1.4663739204406738, "addresses": [ "Crucible Enterprises Ltd, 55 Norfolk Street, , , , Sheffield, South Yorkshire",
{
"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一样观看它,而不要删除逗号,因为它们很可能是逻辑的一部分。