如何访问序列化表单数据并进行处理?

时间:2014-06-02 08:17:42

标签: javascript jquery ajax forms html-form

我已经在html页面上序列化数据并想要处理它。

我的数据格式如下:

    "lusername=unm1&lpassword=p1&lpassword=p2""lusername=unm2&lpassword=unm2p1&lpassword=unmp2""wusername=unmw1&wpassword=pw1&wpassword=pw2
w2""wusername=unmw2&wpassword=pw1""snmpsettings=pqr""subnet=1.1.1.1"

我想处理上述数据以将最终数据字符串整理为:

lusername=unm1;lpassword=p1,p2;
lusername = unmw2; lpassword = pw1,pw2;
snmpsettings = pqr

如何对我的数据进行deserilize以获得高于输出的效果?

2 个答案:

答案 0 :(得分:0)

您可以对特定字符进行拆分,请参阅:How do I split a string, breaking at a particular character?

您可能需要进行多次拆分才能获得正确的数组结构和值。

答案 1 :(得分:0)

你可能正在寻找这样的东西:

var data = '"lusername=unm1&lpassword=p1&lpassword=p2""lusername=unm2&lpassword=unm2p1&lpassword=unmp2""wusername=unmw1&wpassword=pw1&wpassword=pw2w2""wusername=unmw2&wpassword=pw1""snmpsettings=pqr""subnet=1.1.1.1"',
    objs = data.split(/"{1,2}/);
var newArr = [];
$.each(objs,function( i, item ) {
    if( item !== "" ) {
        var parts = item.split( '&' ),
            x = {};
        $.each( parts, function( index, value ) {
            var key = value.split( '=' )[0],
                val = value.split( '=' )[1];
            x[ key ] = ((!!x[ key ]) ? x[ key ] + ',' : '') + val;
        });
        newArr.push( x );
    }
});
console.log( newArr );

这是一个有效的演示:JS FIDDLE DEMO