首先拆分字符串等于在javascript中签名

时间:2015-11-22 18:49:42

标签: javascript

我正在尝试使用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);
    }    

3 个答案:

答案 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"]