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

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 my-name-is-url
Usage
import Urls from 'my-name-is-url';
const getText = 'Check out these sites: foobar.com,//foo.ninja,http://bar.com.';
Urls(getText).get();
// [ 'foobar.com', '//foo.ninja', 'http://bar.com' ]
const filterText = 'My GitHub profile: https://github.com/lukechilds';
Urls(filterText).filter(url => `<a href="${url}">${url}</a>`);
// 'My GitHub profile: <a href="https://github.com/lukechilds">https://github.com/lukechilds</a>'
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.
var urlRegex = require('my-name-is-url').regex;
or
import { regex as urlRegex } from 'my-name-is-url';
API
regex
The regex used internally for matching urls.
get()
Returns an array of url matches. If there are no matches an empty array will be returned.
const text = 'Check out these sites: foobar.com,//foo.ninja,http://bar.com.';
Urls(text).get();
// [ 'foobar.com', '//foo.ninja', 'http://bar.com' ]
filter(cb)
Runs a filter callback on each url in a string.
cb
Required
Type: function
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()
ornew Urls
, whichever you prefer.
License
MIT © Luke Childs