myungjaeyu / url-pattern-match

🎰 Super simple URL match patterns library

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

url-pattern-match

NPM Version

NPM Badge

Super simple URL match patterns library.

Install

$ npm install --save url-pattern-match

nodejs

const match = require('url-pattern-match');

browsers

<script src="url-pattern-match.min.js"></script>

Usage

var exam  = match('http://example.com/settings/:type', 'http://example.com/settings/profile');
var exam1 = match('http://example.com/settings/:type', 'http://example.com/settings/admin');

var exam2 = match('http://example.com/users/:name/:type', 'http://example.com/users/u4bi/repos');
var exam3 = match('http://example.com/users/:name/:type', 'http://example.com/users/u4bi/orgs');

var exam4 = match('http://example.com/:name?tab=:panel', 'http://example.com/u4bi?tab=stars');
var exam5 = match('http://example.com/:name/?tab=:panel', 'http://example.com/u4bi/?tab=stars');

var exam6 = match(
    'http://example.com/?name=:NAME&level=:LEVEL&weapon=:WEAPON',
    'http://example.com/?name=u4bi&level=17&weapon=ak-47'
);


{
    state: true,
    pattern : 'http://example.com/?name=:NAME&level=:LEVEL&weapon=:WEAPON',
    children:{ 
        NAME   : 'u4bi', 
        LEVEL  : '17', 
        WEAPON : 'ak-47'
    }
}

var exam7 = match('https://:SUB_DOMAIN.github.com', 'https://api.github.com');


  βœ” exam
  βœ” exam2
  βœ” exam3
  βœ” exam4
  βœ” exam5
  βœ” exam6
  βœ” exam7
  βœ” exam8
  βœ” not_matched_with_longer_path
  βœ” not_matched_with_shorter_path
  βœ” not_matched_with_different_domain
  βœ” not_matched_with_partially_matching_url

  12 tests passed

License

MIT

About

🎰 Super simple URL match patterns library

License:MIT License


Languages

Language:JavaScript 81.5%Language:HTML 18.5%