Javascriptでurlのパスを取得

2020年7月29日水曜日

javascript

t f B! P L

概要

javascriptでurlの文字列からパスの文字列を取得したい。
http://localhost:3000/hoge/huga
の場合は'hoge/huga'の部分
http://localhost:3000/
の場合は'/'を取得したい

splitしてsliceしてjoinする

// 'http://localhost:3000/hoge/huga'.split('/').slice(3)
// →["hoge","huga"]
let path = 'http://localhost:3000/hoge/huga'.split('/').slice(3).join('/')
path == '' ? '/' : path
// →"hoge/huga"

// 'http://localhost:3000/'.split('/').slice(3)
// →[""]
path = 'http://localhost:3000/'.split('/').slice(3).join('/')
path == '' ? '/' : path
// →"/"

splitしてsliceして+=演算子を使う

let path_list = 'http://localhost:3000/hoge/huga'.split('/').slice(3)
let path = ''
for(let v of path_list){
  path += (v == '') ? '/' : v
}
// →"hoge/huga"

path_list = 'http://localhost:3000/'.split('/').slice(3)
path = ''
for(let v of path_list){
  path += (v == '') ? '/' : v
}
// →"/"

不完全燃焼

  • 三項演算子使わない方がいい?もう少しシンプルにしたい。replace使えばシンプルにいけそうだけど、正規表現が分からぬ…
  • Javascript側、もしくはライブラリなんかでurl扱うメソッドとかない?

ちなみにrubyの場合、URI.splitを使う

require 'uri'
URI.split('http://localhost:3000/')
=> ["http", nil, "localhost", "3000", nil, "/", nil, nil, nil]
indexurlの要素
0scheme
1userinfo
2host
3port
4registry
5path
6opaque
7query
8fragment

自己紹介

Webエンジニアをやっています。日々思ったことや、読書レビュー、IT系の記事などを書き連ねています

広告

[書籍] 世界一楽しい決算書の読み方感想まとめ

  こういう人におすすめ 決算書を読もうとして挫折した人 企業分析したい投資家 会社で経営企画担当、管理職などのポジションの人 概要 著者はTwitterで会計クイズを行なっている 「大手町のランダムウォーカー」さん 。 「日本人全員が財務諸表を読める世界を創る」 を合言葉にして...

QooQ