# match-url-wildcard

> Module to match url by pattern with wildcard

Latest version **0.0.5** (published 2023-08-18) · MIT license · 0 weekly downloads

## Install

```sh
npm install match-url-wildcard
pnpm add match-url-wildcard
yarn add match-url-wildcard
bun add match-url-wildcard
```

## Health

**Score 35/100 (D)** — status: abandoned.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support; pre 1.0.

Negative: abandoned.

## Facts

| | |
|---|---|
| Version | 0.0.5 |
| Published | 2023-08-18 |
| First published | 2018-03-14 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 1 |
| Unpacked size | 10.7 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 13 |
| Author | alexkamaev |
| Maintainers | artem-babich, aleks-pro, aleksey_popov, dmitry-ostashev, miherlosev, kirovboris, alexkamaev |
| Keywords | url, match-url, no-proxy, proxy-bypass, wildcard |

## Links

- npm: https://www.npmjs.com/package/match-url-wildcard
- Repository: https://github.com/AlexKamaev/match-url-wildcard
- Homepage: https://github.com/AlexKamaev/match-url-wildcard#readme
- Issues: https://github.com/AlexKamaev/match-url-wildcard/issues
- npm.io page: https://npm.io/package/match-url-wildcard

## Dependencies (1)

- [escape-string-regexp](https://npm.io/package/escape-string-regexp.md) ^1.0.5

## Alternatives

- [base64url](https://npm.io/package/base64url.md) — 6.1M weekly downloads
- [get-installed-path](https://npm.io/package/get-installed-path.md) — 502.9K weekly downloads
- [@uppy/url](https://npm.io/package/@uppy/url.md) — 185.8K weekly downloads
- [@d3fc/d3fc-shape](https://npm.io/package/@d3fc/d3fc-shape.md) — 16.2K weekly downloads
- [localizer](https://npm.io/package/localizer.md) — 226 weekly downloads

## Recent versions

- 0.0.5 (latest) — 2023-08-18
- 0.0.4 — 2019-05-21
- 0.0.3 — 2019-05-20
- 0.0.2 — 2018-04-05
- 0.0.1 — 2018-03-14

## README

# Match-url-wildcard [![Build Status](https://travis-ci.org/AlexKamaev/match-url-wildcard.svg?branch=master)](https://travis-ci.org/AlexKamaev/match-url-wildcard)
## Module to match url by pattern

#### var rule = 'google.com';

    expect(matchUrl('google.com.uk', rule)).to.be.false;
    expect(matchUrl('docs.google.com', rule)).to.be.false;
    expect(matchUrl('http://docs.google.com', rule)).to.be.false;
    expect(matchUrl('https://docs.google.com', rule)).to.be.false;
    expect(matchUrl('www.docs.google.com', rule)).to.be.false;
    expect(matchUrl('http://docs.ggoogle.com', rule)).to.be.false;
    expect(matchUrl('http://goooogle.com', rule)).to.be.false;
    expect(matchUrl('gogoogle.com', rule)).to.be.false;
    expect(matchUrl('http://google.com', rule)).to.be.true;
    expect(matchUrl('https://google.com', rule)).to.be.true;
    expect(matchUrl('https://google.com/', rule)).to.be.true;
    expect(matchUrl('google.com/', rule)).to.be.true;

#### rule = 'http://google.com';

    expect(matchUrl('https://google.com', rule)).to.be.false;
    expect(matchUrl('https://google.com/', rule)).to.be.false;
    expect(matchUrl('docs.google.com', rule)).to.be.false;
    expect(matchUrl('http://docs.google.com', rule)).to.be.false;
    expect(matchUrl('https://docs.google.com', rule)).to.be.false;
    expect(matchUrl('www.docs.google.com', rule)).to.be.false;
    expect(matchUrl('http://docs.ggoogle.com', rule)).to.be.false;
    expect(matchUrl('http://google.com', rule)).to.be.true;
    expect(matchUrl('google.com/', rule)).to.be.true;

#### rule = 'https://google.com';

    expect(matchUrl('http://google.com', rule)).to.be.false;
    expect(matchUrl('https://google.com', rule)).to.be.true;

#### ['.google.com', '*.google.com']
    .forEach(r => {
        expect(matchUrl('http://google.com', r)).to.be.false;
        expect(matchUrl('https://google.com', r)).to.be.false;
        expect(matchUrl('https://google.com/', r)).to.be.false;
        expect(matchUrl('google.com/', r)).to.be.false;
        expect(matchUrl('http://docs.ggoogle.com', r)).to.be.false;
        expect(matchUrl('docs.google.com', r)).to.be.true;
        expect(matchUrl('http://docs.google.com', r)).to.be.true;
        expect(matchUrl('https://docs.google.com', r)).to.be.true;
        expect(matchUrl('www.docs.google.com', r)).to.be.true;
    });

#### ['.com', '*.com']
    .forEach(r => {
        expect(matchUrl('http://google.com.uk', r)).to.be.false;
        expect(matchUrl('http://google.com', r)).to.be.true;
        expect(matchUrl('google.com/', r)).to.be.true;
        expect(matchUrl('docs.google.com', r)).to.be.true;
        expect(matchUrl('http://docs.google.com', r)).to.be.true;
        expect(matchUrl('www.docs.google.com', r)).to.be.true;
    });

#### ['google.', 'google.*']
    .forEach(r => {
        expect(matchUrl('docs.google.com', r)).to.be.false;
        expect(matchUrl('https://docs.google.co.uk', r)).to.be.false;
        expect(matchUrl('https://docs.google.uk', r)).to.be.false;
        expect(matchUrl('http://google.com', r)).to.be.true;
        expect(matchUrl('https://google.co.uk', r)).to.be.true;
        expect(matchUrl('google.ru/', r)).to.be.true;
    });

#### ['docs.google.', 'docs.google.*']
    .forEach(r => {
        expect(matchUrl('http://google.com', r)).to.be.false;
        expect(matchUrl('docs.google', r)).to.be.false;
        expect(matchUrl('https://docs.googlee.com', r)).to.be.false;
        expect(matchUrl('www.docs.google.co.uk', r)).to.be.false;
        expect(matchUrl('http://docs.ggoogle.com', r)).to.be.false;
        expect(matchUrl('http://___docs.google.com', r)).to.be.false;
        expect(matchUrl('docs.google.en', r)).to.be.true;
        expect(matchUrl('http://docs.google.co.uk', r)).to.be.true;
    });

#### ['.google.', '*.google.*']
    .forEach(r => {
        expect(matchUrl('http://google.com', r)).to.be.false;
        expect(matchUrl('docs.google.com', r)).to.be.true;
        expect(matchUrl('http://docs.google.com', r)).to.be.true;
        expect(matchUrl('www.docs.google.com', r)).to.be.true;
        expect(matchUrl('www.my.docs.google.com', r)).to.be.true;

    });

#### ['.docs.google.', '*.docs.google.*']
    .forEach(r => {
        expect(matchUrl('http://google.com', r)).to.be.false;
        expect(matchUrl('docs.google.com', r)).to.be.false;
        expect(matchUrl('http://docs.google.com', r)).to.be.false;
        expect(matchUrl('www.docs.google.com', r)).to.be.true;
        expect(matchUrl('www.my.docs.google.com.eu', r)).to.be.true;
    });

#### rule = 'docs.*.com';

    expect(matchUrl('docs.google.com', rule)).to.be.true;
    expect(matchUrl('docs.google.eu.com', rule)).to.be.true;
    expect(matchUrl('docs.google.ru', rule)).to.be.false;
    expect(matchUrl('docs.google.co.uk', rule)).to.be.false;

#### rule = 'docs.*.*.com';

    expect(matchUrl('docs.google.com', rule)).to.be.false;
    expect(matchUrl('docs.google.ru', rule)).to.be.false;
    expect(matchUrl('my.docs.google.ro.eu.com', rule)).to.be.false;
    expect(matchUrl('docs.google.co.uk', rule)).to.be.false;
    expect(matchUrl('docs.google.eu.com', rule)).to.be.true;
    expect(matchUrl('docs.google.ro.eu.com', rule)).to.be.true;

#### rule = '.docs.*.*.com.';

    expect(matchUrl('my.docs.google.eu.com.ru', rule)).to.be.true;

#### rule = 'docs.g*e.com';

    expect(matchUrl('docs.google.com', rule)).to.be.false;

#### rule = 'localhost';

    expect(matchUrl('localhost', rule)).to.be.true;
    expect(matchUrl('http://localhost', rule)).to.be.true;
    expect(matchUrl('my-localhost', rule)).to.be.false;
    expect(matchUrl('localhost-my', rule)).to.be.false;

#### rule = '127.0.0.1';

    expect(matchUrl('127.0.0.1', rule)).to.be.true;
    expect(matchUrl('http://127.0.0.1', rule)).to.be.true;
    expect(matchUrl('https://127.0.0.1', rule)).to.be.true;

#### rule = '127.0.0.';

    expect(matchUrl('127.127.0.0', rule)).to.be.false;
    expect(matchUrl('127.0.0.2', rule)).to.be.true;

#### rule = '.0.0.';

    expect(matchUrl('127.0.1.2', rule)).to.be.false;
    expect(matchUrl('127.0.0.2', rule)).to.be.true;

#### rule = '127.*.*.0';

    expect(matchUrl('128.120.120.0', rule)).to.be.false;
    expect(matchUrl('127.0.0.0', rule)).to.be.true;
    expect(matchUrl('127.120.120.0', rule)).to.be.true;

#### rule = 'google.com:81';

    expect(matchUrl('google.com', rule)).to.be.false;
    expect(matchUrl('google.com:80', rule)).to.be.false;
    expect(matchUrl('google.com:81', rule)).to.be.true;

#### rule = 'google.:81';

    expect(matchUrl('google.com', rule)).to.be.false;
    expect(matchUrl('google.com:80', rule)).to.be.false;
    expect(matchUrl('google.com:81', rule)).to.be.true;

#### rule = 'localhost:3000';

    expect(matchUrl('localhost:3000/features/functional/local', rule)).to.be.true;
    expect(matchUrl('http://localhost:3000/features/functional/local', rule)).to.be.true;
    expect(matchUrl(null, rule)).to.be.false;

#### rule = 1;

    expect(matchUrl('google', rule)).to.be.false;

---
_Source: https://npm.io/package/match-url-wildcard · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
