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