{"id":17531168,"url":"https://github.com/bartozzz/wildcard-named","last_synced_at":"2025-04-23T20:45:14.584Z","repository":{"id":8744756,"uuid":"59607281","full_name":"Bartozzz/wildcard-named","owner":"Bartozzz","description":"A small and easy-to-use utility module for matching strings using named and/or unnamed wildcards for JavaScript.","archived":false,"fork":false,"pushed_at":"2023-01-07T03:55:55.000Z","size":1210,"stargazers_count":7,"open_issues_count":8,"forks_count":2,"subscribers_count":2,"default_branch":"development","last_synced_at":"2025-04-14T16:53:22.759Z","etag":null,"topics":["match","pattern","pattern-matching","regex","regex-util","string-matching","wildcard"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Bartozzz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-05-24T20:42:22.000Z","updated_at":"2025-02-11T15:48:39.000Z","dependencies_parsed_at":"2023-01-11T20:11:14.290Z","dependency_job_id":null,"html_url":"https://github.com/Bartozzz/wildcard-named","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bartozzz%2Fwildcard-named","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bartozzz%2Fwildcard-named/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bartozzz%2Fwildcard-named/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bartozzz%2Fwildcard-named/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Bartozzz","download_url":"https://codeload.github.com/Bartozzz/wildcard-named/tar.gz/refs/heads/development","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250513380,"owners_count":21443200,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["match","pattern","pattern-matching","regex","regex-util","string-matching","wildcard"],"created_at":"2024-10-20T17:23:07.389Z","updated_at":"2025-04-23T20:45:14.553Z","avatar_url":"https://github.com/Bartozzz.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003ewildcard-named\u003c/h1\u003e\n\n[![Default CI/CD](https://github.com/Bartozzz/wildcard-named/workflows/Default%20CI/CD/badge.svg)](https://github.com/Bartozzz/wildcard-named/actions)\n[![Known Vulnerabilities](https://snyk.io/test/github/Bartozzz/wildcard-named/badge.svg?targetFile=package.json)](https://snyk.io/test/github/Bartozzz/wildcard-named?targetFile=package.json)\n[![npm package size](https://img.badgesize.io/Bartozzz/wildcard-named/master/dist/index.js?compression=gzip)](https://www.npmjs.com/package/wildcard-named)\n[![npm version](https://img.shields.io/npm/v/wildcard-named.svg)](https://www.npmjs.com/package/wildcard-named)\n[![npm dependency Status](https://david-dm.org/Bartozzz/wildcard-named.svg)](https://www.npmjs.com/package/wildcard-named)\n[![npm downloads](https://img.shields.io/npm/dt/wildcard-named.svg)](https://www.npmjs.com/package/wildcard-named)\n\u003cbr\u003e\n\nA small and easy-to-use utility module for matching strings using named and/or unnamed wildcards for JavaScript.\n\n\u003c/div\u003e\n\n## Installation\n\n```bash\n$ npm install wildcard-named\n```\n\n## Usage\n\n```javascript\nimport wildcard from \"wildcard-named\";\n```\n\n### Basic example\n\n```javascript\nimport wildcard from \"wildcard-named\";\n\nwildcard(\"//blog.com/page/14\", \"//blog.com/page/[digit:page]\");\n// { 'page': '14' }\n\nwildcard(\"abc-123:d2f\", \"[digit:a]-[alpah:]:[alnum:c]\");\n// { 'a': 'abc', '0': '123', 'c': 'd2f' }\n```\n\n### Unnamed wildcards\n\n```javascript\nimport wildcard from \"wildcard-named\";\n\nwildcard(\"a-b-c\", \"[alpah:]-[alpah:]-[alpah:]\");\n// { '0': 'a', '1': 'b', '2': 'c' }\n```\n\n### Unmatched wildcards\n\nWhen the pattern cannot be resolved, it will return `undefined`.\n\n```javascript\nimport wildcard from \"wildcard-named\";\n\nwildcard(\"a-b-c\", \"[alpah:]\");\n// undefined\n```\n\n### Wildcards\n\nYou can add your own filters using the `.addFilter(filter, regex)` function, like this:\n\n```javascript\nimport wildcard, { addFilter } from \"wildcard-named\";\n\naddFilter(\"testA\", \"(.*?)\");\naddFilter(\"testB\", \"([0-9])\");\n\nwildcard(\"match-1\", \"[testA:a]-[testB:b]\");\n// { 'a': 'match', 'b': '1' }\n```\n\nAll registered filters are stored in a [Map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) at `wildcard.filters`.\n\n#### Predefined wildcards\n\n| Filter   | Regex                                                              | Description                                                         |\n| -------- | ------------------------------------------------------------------ | ------------------------------------------------------------------- |\n| `digit`  | `([0-9]+)`                                                         | Digits.                                                             |\n| `alnum`  | `([0-9A-Za-z]+)`                                                   | Alphanumeric characters.                                            |\n| `alpha`  | `([A-Za-z]+)`                                                      | Alphabetic characters.                                              |\n| `xdigit` | `([0-9A-Fa-f]+)`                                                   | Hexadecimal digits.                                                 |\n| `punct`  | `([\\u2000-\\u206F\\u2E00-\\u2E7F\\'!\"#$%\u0026()*+,\\-./:;\u003c=\u003e?@\\[\\]^_{}~]+)` | Punctuation (with symbols).                                         |\n| `print`  | `([\\x20-\\x7e]*)`                                                   | Visible characters and spaces (anything except control characters). |\n| `upper`  | `([A-Z]+)`                                                         | Uppercase letters.                                                  |\n| `lower`  | `([a-z]+)`                                                         | Lowercase letters.                                                  |\n| `all`    | `(.*?)`                                                            | Everything.                                                         |\n| `word`   | `([A-Za-z0-9_]+)`                                                  | Word characters (letters, numbers and underscores).                 |\n| `space`  | `([ \\t\\r\\n\\v\\f]+)`                                                 | All whitespace characters, including line breaks.                   |\n| `graph`  | `([\\x21-\\x7E]+)`                                                   | Visible characters (anything except spaces and control characters). |\n| `blank`  | `([ \\t]+)`                                                         | Space and tab.                                                      |\n| `ascii`  | `([\\x00-\\x7F]+)`                                                   | ASCII characters.                                                   |\n| `cntrl`  | `([\\x00-\\x1F\\x7F]+)`                                               | Control characters.                                                 |\n\n## Tests\n\n```bash\n$ npm test\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbartozzz%2Fwildcard-named","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbartozzz%2Fwildcard-named","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbartozzz%2Fwildcard-named/lists"}