foop
Version:
interfaces that describe their intentions.
28 lines (25 loc) • 2.79 kB
JavaScript
/**
* @desc Used to compose unicode character classes.
* {@link https://github.com/qfox/heatfiler/blob/master/lib/uni.js qfox-uni}
* @type {string}
*/
var rsAstralRange = '\\ud800-\\udfff'
var rsComboMarksRange = '\\u0300-\\u036f'
var reComboHalfMarksRange = '\\ufe20-\\ufe2f'
var rsComboSymbolsRange = '\\u20d0-\\u20ff'
var rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange
var rsVarRange = '\\ufe0e\\ufe0f'
/**
* @desc Used to compose unicode capture groups.
* @type {string}
*/
var rsZWJ = '\\u200d'
/**
* @desc Used to detect strings
* with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/).
*
* @name matchUnicode
* @type {RegExp}
*/
module.exports = RegExp(("[" + (rsZWJ + rsAstralRange + rsComboRange + rsVarRange) + "]"))
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2hVbmljb2RlLmpzIiwic291cmNlcyI6WyJtYXRjaFVuaWNvZGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZGVzYyBVc2VkIHRvIGNvbXBvc2UgdW5pY29kZSBjaGFyYWN0ZXIgY2xhc3Nlcy5cbiAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vcWZveC9oZWF0ZmlsZXIvYmxvYi9tYXN0ZXIvbGliL3VuaS5qcyBxZm94LXVuaX1cbiAqIEB0eXBlIHtzdHJpbmd9XG4gKi9cbmNvbnN0IHJzQXN0cmFsUmFuZ2UgPSAnXFxcXHVkODAwLVxcXFx1ZGZmZidcbmNvbnN0IHJzQ29tYm9NYXJrc1JhbmdlID0gJ1xcXFx1MDMwMC1cXFxcdTAzNmYnXG5jb25zdCByZUNvbWJvSGFsZk1hcmtzUmFuZ2UgPSAnXFxcXHVmZTIwLVxcXFx1ZmUyZidcbmNvbnN0IHJzQ29tYm9TeW1ib2xzUmFuZ2UgPSAnXFxcXHUyMGQwLVxcXFx1MjBmZidcbmNvbnN0IHJzQ29tYm9SYW5nZSA9IHJzQ29tYm9NYXJrc1JhbmdlICsgcmVDb21ib0hhbGZNYXJrc1JhbmdlICsgcnNDb21ib1N5bWJvbHNSYW5nZVxuY29uc3QgcnNWYXJSYW5nZSA9ICdcXFxcdWZlMGVcXFxcdWZlMGYnXG5cbi8qKlxuICogQGRlc2MgVXNlZCB0byBjb21wb3NlIHVuaWNvZGUgY2FwdHVyZSBncm91cHMuXG4gKiBAdHlwZSB7c3RyaW5nfVxuICovXG5jb25zdCByc1pXSiA9ICdcXFxcdTIwMGQnXG5cbi8qKlxuICogQGRlc2MgVXNlZCB0byBkZXRlY3Qgc3RyaW5nc1xuICogICAgICAgd2l0aCBbemVyby13aWR0aCBqb2luZXJzIG9yIGNvZGUgcG9pbnRzIGZyb20gdGhlIGFzdHJhbCBwbGFuZXNdKGh0dHA6Ly9lZXYuZWUvYmxvZy8yMDE1LzA5LzEyL2RhcmstY29ybmVycy1vZi11bmljb2RlLykuXG4gKlxuICogQG5hbWUgbWF0Y2hVbmljb2RlXG4gKiBAdHlwZSB7UmVnRXhwfVxuICovXG5tb2R1bGUuZXhwb3J0cyA9IFJlZ0V4cChgWyR7cnNaV0ogKyByc0FzdHJhbFJhbmdlICsgcnNDb21ib1JhbmdlICsgcnNWYXJSYW5nZX1dYClcbiJdLCJuYW1lcyI6WyJjb25zdCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0FBS0FBLEdBQUssQ0FBQyxhQUFhLEdBQUcsaUJBQWlCO0FBQ3ZDQSxHQUFLLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCO0FBQzNDQSxHQUFLLENBQUMscUJBQXFCLEdBQUcsaUJBQWlCO0FBQy9DQSxHQUFLLENBQUMsbUJBQW1CLEdBQUcsaUJBQWlCO0FBQzdDQSxHQUFLLENBQUMsWUFBWSxHQUFHLGlCQUFpQixHQUFHLHFCQUFxQixHQUFHLG1CQUFtQjtBQUNwRkEsR0FBSyxDQUFDLFVBQVUsR0FBRyxnQkFBZ0I7Ozs7OztBQU1uQ0EsR0FBSyxDQUFDLEtBQUssR0FBRyxTQUFTOzs7Ozs7Ozs7QUFTdkIsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsQ0FBQSxHQUFFLElBQUUsS0FBSyxHQUFHLGFBQWEsR0FBRyxZQUFZLEdBQUcsVUFBVSxDQUFBLE1BQUUsQ0FBQyxDQUFDOyJ9