[英]how to catch part of url string with javascript
I have a url string like this: example.com/sfm?dir=uploads/sfm/root/folder1/subfolder1
我有这样的网址字符串:
example.com/sfm?dir=uploads/sfm/root/folder1/subfolder1
Is it possible to catch only the part after the = with javascript? 是否可以使用JavaScript仅捕获=之后的部分? So the catched part should be this:
uploads/sfm/root/folder1/subfolder1
所以要抓住的部分应该是这样:
uploads/sfm/root/folder1/subfolder1
You may try this (Taken From MDN): 您可以尝试以下操作(来自MDN):
var getQueryVarByName = function (name)
{
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
};
Use: 采用:
var param = getQueryVarByName('dir'); // uploads/sfm/root/folder1/subfolder1
You can use .split()
to get it: 您可以使用
.split()
来获取它:
var url = "example.com/sfm?dir=uploads/sfm/root/folder1/subfolder1";
var s = url.split('=')[1];
You can try this (Using the .split()
): 您可以尝试以下操作(使用
.split()
):
function getFilePath(fullPath){
return fullPath.split("dir=")[1];
}
Now call it the following way: 现在以以下方式调用它:
getFilePath("example.com/sfm?dir=uploads/sfm/root/folder1/subfolder1")
You need to create regexp . 您需要创建regexp 。 If there are more parameters after dir regular expression should be more complicated.
如果在dir之后有更多参数,则正则表达式应该更复杂。
var url = 'example.com/sfm?dir=uploads/sfm/root/folder1/subfolder1'; var regexp = /dir=([\\w\\W]*)/; var matched = url.match(regexp); document.body.innerHTML = matched[1];
The part after question mark ?
问号后的部分
?
is known as window.location.search
. 被称为
window.location.search
。 It is possible that you have than 1 parameter in this querystring. 此查询字符串中可能有多个参数。 So safe solution should be like this:
所以安全的解决方案应该是这样的:
//example.com/sfm?dir=uploads/sfm/root/folder1/subfolder1&un=test&time=1234
function getPath(){
var query=window.location.search //?dir=uploads/sfm/root/folder1/subfolder1&un=test&time=1234
.replace(/^\?/,'') //dir=uploads/sfm/root/folder1/subfolder1&un=test&time=1234
.split('&'); //[dir=uploads/sfm/root/folder1/subfolder1, un=test, time=1234]
for(var i = 0, n = query.length;i < n;i++){
var qs = query[i].split('=');
if(qs.length == 2 && qs[0] == 'dir')
return qs[1]; //if found
}//for
return null; // not found
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.