JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 181
  • Score
    100M100P100Q84343F
  • License MIT

Intelligent URL parser

Package Exports

  • my-name-is-url

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (my-name-is-url) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

my-name-is-url Build Status Coverage Status Issue Count

Intelligently recognises many different url formats in a string. For the browser and node. Here, have a play.

About

my-name-is-url was created because I couldn't find a parser with a high enough success rate. The url spec is so vague that many strings could be a url, therefore matching the spec directly results in a lot of false positives. Most parsers get around this by requiring a url to contain a scheme to be matched as a url.

The regular expression used in my-name-is-url tries to match patterns likely to represent a url in a sentence rather than matching the actual url spec. This results in a much wider scope of matchable urls than most other parsers without introducing loads of false positives.

❗️Important note

If you're trying to parse a url into sections (scheme,host) or check a url is valid this module isn't for you. This module is intended to find urls in a string.

Install

npm install --save my-name-is-url

or

jspm install npm:my-name-is-url

Usage

Importing

CommonJS

var Urls = require('my-name-is-url');

ES6

import Urls from 'my-name-is-url';

Regex

If you just wanna do your own thing the regex used internally is helpfully exposed

const UrlRegex = Urls.regex;

Get Urls

The get() method returns an array of urls in a string

const text = 'Check out these sites: foobar.com,//foo.com,http://bar.com.';

Urls(text).get();
// [ 'foobar.com', '//foo.com', 'http://bar.com' ]

Filter Urls

The filter() method runs a filter on each url in a string

const text = 'My GitHub profile: https://github.com/lukechilds';

Urls(text).filter(url => `<a href="${url}">${url}</a>`);
// 'My GitHub profile: <a href="https://github.com/lukechilds">https://github.com/lukechilds</a>'

👍 Pro tip

You can get a parser instance by calling Urls() or new Urls, whichever you prefer.

License

MIT © Luke Childs