jQuery从字符串中提取指定的子字符串和后续数字

时间:2013-02-22 19:53:36

标签: jquery string extract

我需要提取指定的子字符串,然后提取子字符串后面的数字。

例如,我需要从字符串中提取cid=159http://website.com/ProductCats.asp?cid=159&otherjunk=1。尽管cid=仍然存在,但随后的数字可能会发生变化,并且可能在1-4位数之间。

有什么方法可以提取这种模式吗?

先谢谢。

2 个答案:

答案 0 :(得分:2)

这可能会有所帮助。我不记得我在哪里找到它,但它是一个获取URL的函数,并将变量分配给可以引用的数组。这也是纯粹的javascript。

function getUrlVars() {
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)     {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}

所以你会这样做

var myURLArray = getUrlVars();
var cid = myURLArray['cid'];

这对我帮助很大。我再次没有做到这一点,但它很有用。

答案 1 :(得分:0)

仅对任何网址使用javascript,而不仅仅是当前窗口网址(如果需要)。我从先前与此相关的SO问题中借用了getLocation函数。

var getLocation = function(href) {
    var l = document.createElement("a");
    l.href = href;
    return l;
};
var getUriObject = function(href){
    var l = getLocation(href);
    var queryArray=l.search.substr(1).split('&');
    var uriObject={};
    for(var i=0;i<queryArray.length;i++){
        uriObject[queryArray[i].split('=')[0]]=queryArray[i].split('=')[1];
    }
    return uriObject;
}
alert(getUriObject("http://website.com/ProductCats.asp?cid=159&otherjunk=1").cid);