在javascript中第一个等号上拆分字符串

Splitting string on first equals sign in javascript

本文关键字:拆分 字符串 javascript 第一个      更新时间:2023-09-26

我正试图使用Javascript将一些数据从url中分离出来。url看起来像。。。。

var1=green&var2=yellow&newUrl=[url.php?id=2]

我正设法用"&"分隔url签名给我一个由三个项目组成的数组。然后,我试图用第一个"="号拆分此数组,以获得字段和变量的列表。它工作正常,直到它在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

有什么想法吗?

**编辑以显示我基于魔杖制造商解决方案的最终代码**

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);
    }    

尝试以下方法围绕= 进行拆分

index = vars[i].indexOf("=")
var str = [ vars[i].substring(0, index), vars[i].substring(index)]

您可以对数组中的第三个元素使用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("");
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"]