获取URI的路径部分

卡南·法扎利(Kanan Farzali)

我怎样才能匹配/sk/en,并/fg/tr从这些网址吗?

http://example.com/sk/en
http://example.com/fg/tr

网址可以以http://https://开头www.,但不必。在第一个斜杠和第二个斜杠之后总是有两个字母,并且字母是字母的,并且可以以任何方式调用。

本杰明·格伦鲍姆(Benjamin Gruenbaum)

无需为此使用正则表达式。

var url = new URL("http://example.com/sk/en");
console.log(url.pathname); // logs /sk/en

这将适用于http和https,但是如果您需要支持不带协议的URL(顺便说一句,无效的url),只需在它们前面加上http。

另外,如果需要支持旧的浏览器,则总是可以不太直接地使用DOM:

var a = document.createElement("a"); // create a link element
a.href = "http://example.com/sk/en";
console.log(a.pathname); // /sk/en

URLAPI相当新,因此需要IE10 +和一个相对较新的Chrome / Firefox才能运行。

createElement方法也适用于IE的较旧版本,因此,如果您需要支持较旧的浏览器,请选择它。


在注释中提到您,您需要路径后的前两位,一旦有了路径名,就可以将其拆分。假设我们有我们可以使用的路径变量indexOf并将其与0进行比较

var path = "/ab/cd/ef/gh?foo=bar";
console.log(path.indexOf("/ab/cd") === 0); // true, since /ab/cd is exists in the path
                                           // and its start position is 0
console.log(path.indexOf("/cd/ef")); // 3 and not 0, since it's not at the first position
console.log(path.indexOf("/en/us")); // -1, not found at all.

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章