字符串拆分的jQuery问题

时间:2017-07-20 06:04:55

标签: javascript jquery arrays string split

我有一个字符串,如下所示

var a = "M=1234&b=sdaks&c=sdkssad&strXML=<a><b mode="abc"><c>string content</c></b></a>"

然后我用&amp;

拆分它
var b = a.split('&');

然后我在循环中用 = 分割b并附加到表单

$.each(b, function (index) {
        var paramsV = b[index].split('=');
        frm.append('<input type="hidden" name="' + paramsV[0] + '" value="' + paramsV[1] + '" /> ');
    });

但是当它与 = 分开时,它会在字符串中拆分 = 的结果字符串,并且它也会分裂。我想知道如何停止拆分结果字符串。

3 个答案:

答案 0 :(得分:1)

你在变量声明中犯了一个错误。在双引号内,您需要使用单引号。你需要使用像.split(/=(.+)?/)这样的正则表达式。请参阅下面的输出。

$(function(){
var a = "M=1234&b=sdaks&c=sdkssad&strXML=<a><b mode='abc'><c>string content</c></b></a>";
var b = a.split('&');
$.each(b, function (index) {
        var paramsV = b[index].split(/=(.+)?/);
        console.log('<input type="hidden" name="' + paramsV[0] + '" value="' + paramsV[1] + '" /> ');
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

答案 1 :(得分:1)

我想要实现的目标,使用.split(/=(.+)/)仅拆分第一个=

另请注意,当您尝试输入其中包含paramsV[1]的{​​{1}}时,它会破坏输入的原始代码,这就是为什么我将其替换为{{1} }

&#13;
&#13;
"
&#13;
.replace(/\"/g, "''")
&#13;
&#13;
&#13;

答案 2 :(得分:0)

var a = "M=1234&b=sdaks&c=sdkssad&strXML=<a><b mode='abc'><c>string content</c></b></a>";
    var b = a.split('&');
    $.each(b, function (index) {
        var index1 = b[index].indexOf("=")
        var markup ='<input type="hidden" name="' + b[index].substring(0, index1) + '" value="' + b[index].substring(index1) + '" /> ';
        console.log(markup);
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

检查