characterset

A library for working with Unicode character sets

npm install characterset
12 downloads in the last week
23 downloads in the last month

CharacterSet

CharacterSet is a library for creating and manipulating Unicode character sets in JavaScript. Its main purpose is to help in building regular expressions for validation and matching. It fully supports all Unicode characters and correctly handles surrogate pairs in JavaScript strings and regular expressions.

Installation

If you are using Node.js you can install it using npm:

$ npm install characterset

If you want to use CharacterSet in the browser, use the global CharacterSet constructor or include CharacterSet as an AMD module.

API

The constructor takes a single input value, which can either be a number, a string or a range. A range is an array of numbers or number pairs.

// Creates a character set with a single code point for [97]
var cs = new CharacterSet(97);

// Creates a character set for the code points [97, 98, 99]
var cs = new CharacterSet('abc');

// Creates a character set for the code points [97, 98, 99]
var cs = new CharacterSet([97, 98, 99]);

// Creates a character set for the code points [97, 98, 99] using a range
var cs = new CharacterSet([[97, 99]]);

// Combines pairs and numbers in ranges for [0, 97, 98, 99]
var cs = new CharacterSet([48, [97, 99]]);

Once you have an instance of CharacterSet you can use the following methods on it:

getSize()
Returns the number of code points in this set.
toArray()
Returns all code points in this set as a sorted array.
toRange()
Returns all code points in this set as a range (i.e. compressed.)
isEmpty()
Returns true if this set is empty.
add(codePoint, ...)
Adds the given code point(s) to this set.
remove(codePoint, ...)
Removes the given code point(s) from this set.
contains(codePoint)
Returns true if the given code point is in this set.
equals(other)
Returns true if the other set is equal to this set.
union(other)
Returns a new character set from the combined code points from other and this character set.
intersect(other)
Returns a new character set containing only the code points other and this character set have in common.
difference(other)
Returns a new character set containing only the code points from this that are not in other.
subset(other)
Returns true if this character set is a subset of other.
toRegExp()
Returns a RegExp matching the code points in this character set
toString()
Returns a string representation of this character set.

License

CharacterSet is licensed under the three clause BSD license (see BSD.txt.)

npm loves you