我需要提取一个指定的子字符串,然后是该子字符串后面的数字。
例如,我需要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 使用 javascript,而不仅仅是当前窗口 URL(如果需要)。getLocation
我从与此相关的先前 SO 问题中借用了该功能。
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);