处理通过自动完成返回的(str.replace)数组数据

时间:2012-07-08 12:10:42

标签: javascript replace

$('#groupnamesearch').blur(function () {
    str = $('#groupnamesearch').val()
    $.get("injectgroup.php", {
        name: str
    }, function (data) {
        //here i guess str.replace data
        $('#aspecforgroup').val(data);
    });
});

这给我的结果如:[“45054”,“55905”,“42306”]

我想剥掉所有[]“,所以我只有数字和字符。

如何在输入字段中填充ajax请求之前操作数据?

谢谢:)

3 个答案:

答案 0 :(得分:1)

您可以使用数组join

执行此操作

如果你的数据是字符串,你必须首先解析字符串以转换数组,然后像这样进行连接 -

var newData = JSON.parse(data).join();

答案 1 :(得分:1)

如果你回到data的结果是一个实际的字符串 - 我认为如果方括号显示在你的“aspecforgroup”字段中,那么你可以删除这些字符,如下所示:

data = data.replace(/[\[\]"]/g, "");

或者您可以告诉jQuery(您正在使用的 jQuery?)将响应视为JSON,在这种情况下,它应该在结束时自动解析为数组data参数,然后您可以使用数组.join() method将其转换为字符串:

$.get("injectgroup.php", {
    name: str
}, function (data) {
    $('#aspecforgroup').val(data.join(","));
}, "json");

.join()的参数是连接各个元素的字符串。如果您将其保留,默认情况下它将是一个逗号,但您可能需要使用逗号加空格:.join(", ")

答案 2 :(得分:0)

如果data是字符串:

data = '["45054","55905","42306"]';
var output​ = JSON.parse(data).join(', ');
​alert(output)​;

如果data已经是数组:

data = ["45054","55905","42306"];
var output = data.join(', ');
alert(output);

两者输出:

45054, 55905, 42306