Serialize / Reg ex

时间:2017-03-09 07:52:01

标签: javascript regex serialization

我使用serialize函数来获取表单的所有值。 我的问题是如何只提取序列化函数生成的 url 字符串中的值并将其拆分为数组。

var input = $('#addForm').serialize();

deviceBrand=itemBrand&deviceModel=itemModel&deviceSerial=itemSerial&deviceType=Desktop&deviceStatus=Available&deviceDesc=item+description //generated url string

我需要字符串函数来提取每个string between "=" and "&"并将每个String放入一个数组中。

2 个答案:

答案 0 :(得分:0)

尝试使用此代码反序列化字符串

(function($){
$.unserialize = function(serializedString){
    var str = decodeURI(serializedString);
    var pairs = str.split('&');
    var obj = {}, p, idx, val;
    for (var i=0, n=pairs.length; i < n; i++) {
        p = pairs[i].split('=');
        idx = p[0];

        if (idx.indexOf("[]") == (idx.length - 2)) {
            // Eh um vetor
            var ind = idx.substring(0, idx.length-2)
            if (obj[ind] === undefined) {
                obj[ind] = [];
            }
            obj[ind].push(p[1]);
        }
        else {
            obj[idx] = p[1];
        }
    }
    return obj;
};
})(jQuery);

答案 1 :(得分:0)

请勿使用{name: "xxx", value: "yyy" },请使用serializeArray。它创建了一个var input = $("#addForm").serializeArray(); var values = input.map(x => x.value); 形式的对象数组,您可以更轻松地处理它们。

name: value

您还可以创建一个包含所有var object = {}; input.map(x => object[x.name] = x.value); 属性的对象:

sonar-scanner -Dproject.settings=sonar-project-abc.properties