我有一个字符串,如下所示
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] + '" /> ');
});
但是当它与 = 分开时,它会在字符串中拆分 = 的结果字符串,并且它也会分裂。我想知道如何停止拆分结果字符串。
答案 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;
.replace(/\"/g, "''")
&#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>
检查