Skip to content

A small and easy-to-use utility module for matching strings using named and/or unnamed wildcards for JavaScript.

License

Notifications You must be signed in to change notification settings

Bartozzz/wildcard-named

Repository files navigation

wildcard-named

Default CI/CD Known Vulnerabilities npm package size npm version npm dependency Status npm downloads

A small and easy-to-use utility module for matching strings using named and/or unnamed wildcards for JavaScript.

Installation

$ npm install wildcard-named

Usage

import wildcard from "wildcard-named";

Basic example

import wildcard from "wildcard-named";

wildcard("//blog.com/page/14", "//blog.com/page/[digit:page]");
// { 'page': '14' }

wildcard("abc-123:d2f", "[digit:a]-[alpah:]:[alnum:c]");
// { 'a': 'abc', '0': '123', 'c': 'd2f' }

Unnamed wildcards

import wildcard from "wildcard-named";

wildcard("a-b-c", "[alpah:]-[alpah:]-[alpah:]");
// { '0': 'a', '1': 'b', '2': 'c' }

Unmatched wildcards

When the pattern cannot be resolved, it will return undefined.

import wildcard from "wildcard-named";

wildcard("a-b-c", "[alpah:]");
// undefined

Wildcards

You can add your own filters using the .addFilter(filter, regex) function, like this:

import wildcard, { addFilter } from "wildcard-named";

addFilter("testA", "(.*?)");
addFilter("testB", "([0-9])");

wildcard("match-1", "[testA:a]-[testB:b]");
// { 'a': 'match', 'b': '1' }

All registered filters are stored in a Map at wildcard.filters.

Predefined wildcards

Filter Regex Description
digit ([0-9]+) Digits.
alnum ([0-9A-Za-z]+) Alphanumeric characters.
alpha ([A-Za-z]+) Alphabetic characters.
xdigit ([0-9A-Fa-f]+) Hexadecimal digits.
punct ([\u2000-\u206F\u2E00-\u2E7F\'!"#$%&()*+,\-./:;<=>?@\[\]^_{}~]+) Punctuation (with symbols).
print ([\x20-\x7e]*) Visible characters and spaces (anything except control characters).
upper ([A-Z]+) Uppercase letters.
lower ([a-z]+) Lowercase letters.
all (.*?) Everything.
word ([A-Za-z0-9_]+) Word characters (letters, numbers and underscores).
space ([ \t\r\n\v\f]+) All whitespace characters, including line breaks.
graph ([\x21-\x7E]+) Visible characters (anything except spaces and control characters).
blank ([ \t]+) Space and tab.
ascii ([\x00-\x7F]+) ASCII characters.
cntrl ([\x00-\x1F\x7F]+) Control characters.

Tests

$ npm test

About

A small and easy-to-use utility module for matching strings using named and/or unnamed wildcards for JavaScript.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •