# xspattern

> XML Schema pattern (regular expression) matcher

Latest version **3.1.0** (published 2023-02-02) · MIT license · 0 weekly downloads

## Install

```sh
npm install xspattern
pnpm add xspattern
yarn add xspattern
bun add xspattern
```

## Health

**Score 30/100 (F)** — status: abandoned.

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

Warnings: low downloads.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 3.1.0 |
| Published | 2023-02-02 |
| First published | 2019-09-27 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 1 |
| Unpacked size | 199.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 12 |
| Author | Stef Busking |
| Maintainers | bwrrp |
| Keywords | xml, schema, regex, regular expression, xsd, pattern, xs:pattern |

## Links

- npm: https://www.npmjs.com/package/xspattern
- Repository: https://github.com/bwrrp/xspattern.js
- Homepage: https://github.com/bwrrp/xspattern.js#readme
- Issues: https://github.com/bwrrp/xspattern.js/issues
- npm.io page: https://npm.io/package/xspattern

## Dependencies (1)

- [whynot](https://npm.io/package/whynot.md) ^5.0.0

## Alternatives

- [babylon](https://npm.io/package/babylon.md) — 5.1M weekly downloads
- [csscolorparser](https://npm.io/package/csscolorparser.md) — 3.7M weekly downloads
- [expr-eval-fork](https://npm.io/package/expr-eval-fork.md) — 1.5M weekly downloads
- [@leeoniya/ufuzzy](https://npm.io/package/@leeoniya/ufuzzy.md) — 247.7K weekly downloads
- [xml-parser](https://npm.io/package/xml-parser.md) — 78.4K weekly downloads

## Recent versions

- 3.1.0 (latest) — 2023-02-02
- 3.0.0 — 2022-06-23
- 2.0.1 — 2022-06-17
- 2.0.0 — 2021-02-07
- 1.2.1 — 2020-05-08
- 1.2.0 — 2020-05-08
- 1.1.0 — 2020-03-13
- 1.0.0 — 2019-11-08
- 0.1.5 — 2019-10-28
- 0.1.4 — 2019-10-22
- 0.1.3 — 2019-10-10
- 0.1.2 — 2019-10-04
- 0.1.1 — 2019-10-04
- 0.1.0 — 2019-09-27

## README

# xspattern

[![NPM version](https://badge.fury.io/js/xspattern.svg)](https://badge.fury.io/js/xspattern)
[![CI](https://github.com/bwrrp/xspattern.js/workflows/CI/badge.svg)](https://github.com/bwrrp/xspattern.js/actions?query=workflow%3ACI)

XML Schema Regular Expression engine

This library is a complete implementation of an engine for the regular
expression language defined in XML Schema 1.0 and 1.1. It follows the XML
Schema 1.1 specification, which corrects some errors in earlier versions but
should be considered fully compatible with XML Schema 1.0.

For Unicode-related functionality, this implementation follows Unicode
version 15.0.0. For compatibility with XML Schema 1.0, Unicode block names
that existed in Unicode 3.1.0 are accepted as aliases for their current
counterparts in `\p{Is...}` and `\P{Is...}` expressions.

## Installation

The xspattern library can be installed using npm or yarn:

```bat
npm install --save xspattern
```

or

```bat
yarn add xspattern
```

The package includes both a UMD bundle (`dist/xspattern.umd.js`), compatible
with Node.js, and an ES6 module (`dist/xspattern.esm.js`). The `whynot`
library is used as a dependency, but is not included in the bundles. It
should be automatically installed and included in most configurations.

## Usage

The library currently exports a single function `compile`, which expects a
string containing a single pattern and returns a function. This function
accepts a single string representing a value to test and returns a boolean
indicating whether the value matches the pattern.

```javascript
// for ES6 / Typescript:
import { compile } from 'xspattern';
// or for CommonJS / Node.js:
const { compile } = require('xspattern');

// This pattern matches sequences of one or more lower case consonants
const matchesPattern = compile('[a-z-[aeoui]]+');
console.log(matchesPattern('asdfgh')); // false
console.log(matchesPattern('zxcvbn')); // true
```

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