Skip to content

bramstein/characterset

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
lib
 
 
 
 
 
 
 
 
 
 

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 ES6 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.

import CharacterSet from 'characterset';

// 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]]);

Or you can use the parseUnicodeRange method to return a CharacterSet instance from a comma-delimited unicode range string.

import CharacterSet from 'characterset';

// Creates a character set for the code points [34, 35]
var cs = CharacterSet.parseUnicodeRange('u+23,u+22');

// Creates a character set for the code points [34, 35, 36, 37]
var cs = CharacterSet.parseUnicodeRange('u+22-25');

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.
toHexString()
Returns a hex string representation of this character set.
toHexRangeString()
Returns a hex string representation with ranges of this character set.

License

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

About

A library for creating and manipulating character sets

Resources

Stars

Watchers

Forks

Packages

No packages published