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

How to access serialized form data and process it?

本文关键字:处理 数据 表单 何访问 访问 序列化      更新时间:2023-09-26

我在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

如何反序列化我的数据以获得上面的输出?

您可以对特定字符进行拆分,参见:如何拆分字符串,在特定字符处中断?

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

您可能正在寻找这样的内容:

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