我正在尝试使用Javascript从网址中分割出一些数据。网址看起来像......
var1=green&var2=yellow&newUrl=[url.php?id=2]
我正在设法通过'&'标志给我一个三项的数组。然后我试图通过第一个' ='来分割这个数组。签名给我一个字段和变量列表。它工作正常,直到它击中newUrl字段中的第二个=符号。关于如何在第一个' ='标志。
到目前为止我的代码是......
var href = $(this).attr("href");
var vars = href.split("&");
for(i=0; i < vars.length; ++i){
var str = vars[i].split("=");
alert(str[0] +':' +str[1]);
}
}
我的结果是
var1:green var2:yellow var3:[url.php?id
有什么想法吗?
**编辑以根据Wand Maker的解决方案显示我的最终代码**
var vars = href.split("&");
for(i=0; i < vars.length; ++i){
index = vars[i].indexOf("=")
var str = [ vars[i].substring(0, index), vars[i].substring(index)]
alert(str[0] +':' +str[1].substring(1);
}
答案 0 :(得分:1)
尝试使用以下内容来分割=
index = vars[i].indexOf("=")
var str = [ vars[i].substring(0, index), vars[i].substring(index)]
答案 1 :(得分:1)
您可以对数组中的第三个元素使用join(),如下所示:
var lst = href.split("&");
var var1 = href[0].split("=")[1];
var var2 = href[1].split("=")[1];
var var3 = href[2].split("=").slice(1,2).join("");
答案 2 :(得分:0)
function splitFirstInstance(str,item){
var res = [];
var found = true;
res.push("");
for (var i = 0; i < str.length;i++){
if (str[i] === item && found === true){
res.push("");
found = false;
} else {
res[res.length-1] += str[i];
}
}
return res;
}
splitstr("I Want to Split First a","a"); // ["I W","nt to Split First a"]