Javascript:获取第一个和第二个斜杠的值

时间:2018-03-02 15:35:59

标签: javascript

如何在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))

这也没有用。任何人都可以指导我哪里出错。

6 个答案:

答案 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个元素的数组。第一个是整个匹配的字符串,第二个是捕获的组。