如何在javascript中获得第一次和第二次删除网址?
网址:http://localhost:8089/submodule/module/home.html
现在我想要值/submodule/module
以下是我一直在尝试的代码
window.location.pathname.substring(0, window.location.pathname.indexOf("/",2))
这只让我/submodule
window.location.pathname.substring(0, window.location.pathname.lastIndexOf("/",window.location.pathname.lastIndexOf("/")-1))
这也没有用。任何人都可以指导我哪里出错。
答案 0 :(得分:1)
您可以使用split()
功能,例如:
var url = 'http://localhost:8089/submodule/module/home.html';
var parts = url.split('/');
console.log('/' + parts[3] + '/' + parts[4]);
输出将是:
/子模块/模块
答案 1 :(得分:1)
使用正则表达式:
var url = 'http://localhost:8089/submodule/module/home.html'; //or window.location.pathname
var re = /\/\/.+(\/.+\/.+)\/.+/
re.exec(url)[1];
此表达式基本上表示网址格式为
//[anything](/submodule/module)/[anything]
并将所有内容括在括号中。
答案 2 :(得分:1)
这应该有用,它会占用pathname
的最后一个元素:
let result = window.location.pathname.split('/').slice(0,-1).join('/') + '/'
仅限第1和第2项:
let result = window.location.pathname.split('/').slice(0,2).join('/') + '/'
处理没有文件的路径:
// ex: /foo/bar/path.html > foo/bar/
// ex: /foo/bar/ > foo/bar/
let result = (window.location.pathname[window.location.pathname.length -1] !== '/') ? window.location.pathname.split('/').slice(0,-1).join('/') + '/' : window.location.pathname
答案 3 :(得分:0)
试试这个:
<Image
as={Link}
src={require('./src/tech.png')}
to='/Users'
/>
答案 4 :(得分:0)
功能风格
/\/[^/]*\/[^/]*/.exec(window.location.pathname)[0]
答案 5 :(得分:0)
您可以使用正则表达式:
var url = ...
var part = url.match(/https?:\/\/.*?(\/.*?\/.*?)\/.*/)[1]
说明:
http Match the group 'http'
s? Match 1 or 0 's'
: Match a semicolon
\/\/ Match '//'
.*? Match anything (non-greedy)
( Start capturing block (Everything captured will be an array element)
\/*?\/.*? Something that looks like /.../...
) End capturing block
\/.* Something that looks like /...
match方法的输出将是一个包含2个元素的数组。第一个是整个匹配的字符串,第二个是捕获的组。