Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用javascript捕获url字符串的一部分_Javascript_Url - Fatal编程技术网

如何用javascript捕获url字符串的一部分

如何用javascript捕获url字符串的一部分,javascript,url,Javascript,Url,我有一个url字符串,如下所示: example.com/sfm?dir=uploads/sfm/root/folder1/subfolder1 是否可以使用javascript仅捕获=后面的部分? 所以捕获的部分应该是这样的:uploads/sfm/root/folder1/subfolder1您可以使用它在=处拆分字符串并获取第二部分 var str='example.com/sfm?dir=uploads/sfm/root/folder1/subfolder1'; var part=st

我有一个url字符串,如下所示:
example.com/sfm?dir=uploads/sfm/root/folder1/subfolder1

是否可以使用javascript仅捕获=后面的部分? 所以捕获的部分应该是这样的:
uploads/sfm/root/folder1/subfolder1
您可以使用它在
=
处拆分字符串并获取第二部分

var str='example.com/sfm?dir=uploads/sfm/root/folder1/subfolder1';
var part=str.split('=')[1];
控制台日志(部分)您可以使用在
=
处拆分字符串并获得第二部分

var str='example.com/sfm?dir=uploads/sfm/root/folder1/subfolder1';
var part=str.split('=')[1];
控制台日志(部分)您可以使用
.split()
获取它:

您可以使用
.split()
来获取它:

您可以尝试以下操作(使用
.split()
):

现在用下面的方式来称呼它:

getFilePath(“example.com/sfm?dir=uploads/sfm/root/folder1/subfolder1”)
您可以尝试(使用
.split()
):

现在用下面的方式来称呼它:

getFilePath(“example.com/sfm?dir=uploads/sfm/root/folder1/subfolder1”)
您需要创建。如果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=匹配的[1]您需要创建。如果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=匹配的[1]您可以尝试以下操作(取自MDN):

使用:

您可以尝试以下方法(取自MDN):

使用:


问号
后面的部分称为
窗口.位置.搜索
。此查询字符串中可能有多个参数。所以安全的解决方案应该是这样的:

//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
}
//example.com/sfm?dir=uploads/sfm/root/folder1/subfolder1&un=test&time=1234
函数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
问号
后面的部分称为
窗口.位置.搜索
。此查询字符串中可能有多个参数。所以安全的解决方案应该是这样的:

//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
}
//example.com/sfm?dir=uploads/sfm/root/folder1/subfolder1&un=test&time=1234
函数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
ok这似乎没问题。但是现在我还需要先用javascript读取url字符串。我怎么做?使用window.location.hrefoke我已经有了。现在还有一个问题:我想把这个结果绑定到一个php变量。我怎么能这么做?你不能。JavaScript在浏览器中运行(至少在本例中是这样),PHP在服务器上运行,所以您需要将查询发送到服务器。但这超出了这个问题的范围。这似乎没问题。但是现在我还需要先用javascript读取url字符串。我怎么做?使用window.location.hrefoke我已经有了。现在还有一个问题:我想把这个结果绑定到一个php变量。我怎么能这么做?你不能。JavaScript在浏览器中运行(至少在本例中是这样),PHP在服务器上运行,所以您需要将查询发送到服务器。但这超出了这个问题的范围。
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, " "));
};
var param = getQueryVarByName('dir'); // uploads/sfm/root/folder1/subfolder1
//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
}