如何使用Javascript获取URL字符串的一部分?

时间:2018-11-17 09:41:32

标签: javascript string split

我有这个URL:

var url = "mysite.com/categorias/#tab-cultura/folclore/";

现在我想从该URL获取2个字符串:

#tab-cultura folclore

如何使用Javascript获得它?

url.split('#')[0];

看来split是不正确的解决方案:(

5 个答案:

答案 0 :(得分:3)

“拆分”可能是解决此问题的正确方法。请看下面

var url = "mysite.com/categorias/#tab-cultura/folclore/";

let [val1, val2] = url.split('#')[1].split('/')

console.log(val1, val2)

答案 1 :(得分:2)

您需要用/分隔符来分隔网址

var url = "mysite.com/categorias/#tab-cultura/folclore/";
var parts = url.split('/');
console.log(parts[2]);
console.log(parts[3]);

如果您不知道URL中#的位置,也可以使用正则表达式

var url = "mysite.com/categorias/category1/category2/#tab-cultura/folclore/";
var parts = url.match(/(#[^\/]+)\/([^\/]+)/);
console.log(parts[1]);
console.log(parts[2]);

答案 2 :(得分:0)

使用JavaScript的String.prototype.split函数:

var url = "mysite.com/categorias/#tab-cultura/folclore/";
var fields = input.split('/');

var first = fields[0];
var second = fields[1];
var third = fields[2];
var fourth = fields[3];

答案 3 :(得分:0)

您可以使用split('/') like so:

var url = "mysite.com/categorias/#tab-cultura/folclore/";

let [, ,tabCultura, folclore] = url.split('/');

console.log(tabCultura);
console.log(folclore);

答案 4 :(得分:0)

使用Array.split()可能会为您提供所需的信息-但是,URL本质上很复杂,您需要确保代码在具有可变查询参数等的不同服务器上以相同的方式工作。使用内置的浏览器功能更加可靠:

const hash = new URL("http://example.com/categorias/#tab-cultura/folclore/").hash

// => "#tab-cultura/folclore/"

hash.split('/') 

// => ['#tab-cultura', 'folclore', ''] 

hash.split('/').filter(i=>i)

// => ['#tab-cultura', 'folclore']

注意:new URL()在IE中不可用,但可以是polyfilled