Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.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_Regex - Fatal编程技术网

Javascript 正则表达式获取URL中斜杠后的第一个单词

Javascript 正则表达式获取URL中斜杠后的第一个单词,javascript,regex,Javascript,Regex,我需要在javascript中获取url中斜杠后的第一个单词,我认为使用正则表达式是理想的 以下是URL可能的外观: 部分/ 部分/小节/ 带破折号的部分/ 带下划线的章节/ 粗体是我需要正则表达式为每个场景匹配的内容,因此基本上只有斜杠后的第一部分,不管还有多少斜杠 我在这里完全不知所措,感谢您的帮助。试试: var url = 'http://mysite.com/section-with-dashes/'; var section = url.match(/^http[s]?:\/\/

我需要在javascript中获取url中斜杠后的第一个单词,我认为使用正则表达式是理想的

以下是URL可能的外观:

  • 部分/
  • 部分/小节/
  • 带破折号的部分/
  • 带下划线的章节/
粗体是我需要正则表达式为每个场景匹配的内容,因此基本上只有斜杠后的第一部分,不管还有多少斜杠

我在这里完全不知所措,感谢您的帮助。

试试:

var url = 'http://mysite.com/section-with-dashes/';
var section = url.match(/^http[s]?:\/\/.*?\/([a-zA-Z-_]+).*$/)[0];

我的正则表达式非常糟糕,因此我将临时使用一个效率较低的解决方案:p

// The first part is to ensure you can handle both URLs with the http:// and those without

x = window.location.href.split("http:\/\/")
x = x[x.length-1];
x = x.split("\/")[1]; //Result is in x
非正则表达式

var link = document.location.href.split('/');
alert(link[3]);

带有正则表达式的JavaScript。这将匹配第一个/之后的任何内容,直到我们遇到另一个/

window.location.pathname.replace(/^\/([^\/]*).*$/, '$1');

下面是用javascript实现这一点的快速方法

var urlPath = window.location.pathname.split("/");
if (urlPath.length > 1) {
  var first_part = urlPath[1];
  alert(first_part); 
}

在javascript中分解url可以使用官方:

这将为您提供:

["", "http:", "http", "//www.example.com", "www.example.com", "/path/to/something", "?query", "query", "#fragment", "fragment", ""]
在这种情况下,您可以使用以下工具轻松检索路径:

const path = exp[5];
因此,路径后的第一个单词使用:

const rootPath = path.split('/')[1];

从技术上讲,示例中斜杠后的第一个单词是“mysite”。。。您需要的是url路径组件的第一部分。出于某种原因,我认为JavaScript解释器不会喜欢您的PHP解决方案。在闪烁几次之后,您可能是对的。。。但是因为有很多人认为Javascript可以在服务器上执行,我可以假装PHP可以在客户端执行:)回答得好,我的朋友当url是www.a.com/1/2时,我想要/1/back。当url为www.a.com时,我想要/返回,这可以在一个正则表达式中完成吗?为什么要添加“.split”(“/”[1]”?因为我写这篇文章时还年轻……不,实际上这是为了获得根路径(如问题作者所问),我更新了答案。
const path = exp[5];
const rootPath = path.split('/')[1];