Regex URL Path from URL

javascript, node.js, regex, url

Solution

This expression gets everything after `videoplay`, aka the url path.

/\/(videoplay.+)/

This expression gets everything after the port. Also consisting of the path.

/\:\d./(.+)/

However If using `Node.js` I recommend the native `url` module.

var url = require('url')
var youtubeUrl = "http://video.google.co.uk:80/videoplay?docid=-7246927612831078230&hl=en#hello"
url.parse(youtubeUrl)

Which does all of the regex work for you.

{
  protocol: 'http:',
  slashes: true,
  auth: null,
  host: 'video.google.co.uk:80',
  port: '80',
  hostname: 'video.google.co.uk',
  hash: '#hello',
  search: '?docid=-7246927612831078230&hl=en',
  query: 'docid=-7246927612831078230&hl=en',
  pathname: '/videoplay',
  path: '/videoplay?docid=-7246927612831078230&hl=en',
  href: 'http://video.google.co.uk:80/videoplay?docid=-7246927612831078230&hl=en#hello' 
}

Problem

I am having a little bit of regex trouble. I am trying to get the path in this url `videoplay`. ``` http://video.google.co.uk:80/videoplay?docid=-7246927612831078230&hl=en#hello ``` If I use this regex `/.+` it matches `/video` as well. I would need some kind of anti / negative match to not include `//`

Original source

Related problems