npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

my-name-is-url

v1.4.0

Published

Intelligent URL parser

Downloads

1,069

Readme

my-name-is-url Build Status Coverage Status

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() or new Urls, whichever you prefer.

License

MIT © Luke Childs