2013-02-22 72 views
0

我需要提取指定的子字符串,然后提取该子字符串后面的数字。jQuery从字符串中提取指定的子字符串和以下数字

例如,我需要从字符串中提取cid=159http://website.com/ProductCats.asp?cid=159&otherjunk=1。即使cid=仍然存在,随后的数字可能会更改,并且可能在1-4位之间的任何位置。

有什么方法可以提取该模式?

谢谢先进。

+0

你可以使用插件吗? – lolol 2013-02-22 19:55:02

+0

是的,首先将它拆分为cid =,然后用&拆分后半部分并得到前半部分。 – 2013-02-22 19:55:25

回答

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']; 

它帮了我很多。我再次没有这样做,但它很有用。

0

对所有url使用just javascript,而不仅仅是当前窗口URL(如果需要的话)。我借用了与之相关的以前的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);