我需要提取指定的子字符串,然後提取該子字符串後面的數字。jQuery從字符串中提取指定的子字符串和以下數字
例如,我需要從字符串中提取cid=159
: http://website.com/ProductCats.asp?cid=159&otherjunk=1
。即使cid=
仍然存在,隨後的數字可能會更改,並且可能在1-4位之間的任何位置。
有什麼方法可以提取該模式?
謝謝先進。
我需要提取指定的子字符串,然後提取該子字符串後面的數字。jQuery從字符串中提取指定的子字符串和以下數字
例如,我需要從字符串中提取cid=159
: http://website.com/ProductCats.asp?cid=159&otherjunk=1
。即使cid=
仍然存在,隨後的數字可能會更改,並且可能在1-4位之間的任何位置。
有什麼方法可以提取該模式?
謝謝先進。
這可能有幫助。我不記得我在哪裏找到它,但它是一個函數,它獲取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'];
它幫了我很多。我再次沒有這樣做,但它很有用。
對所有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);
你可以使用插件嗎? – lolol 2013-02-22 19:55:02
是的,首先將它拆分爲cid =,然後用&拆分後半部分並得到前半部分。 – 2013-02-22 19:55:25