UNPKG

1.07 kBJavaScriptView Raw
1
2/**
3 * Object of regular expressions for style strings
4 *
5 * { colorize, colorhex, colorname, padding, zoom, zoomsym, classbase, id, colorbase, color, colors, background, detail, detailsym, classes, full }
6 * @alias style.re
7 * @type {object}
8 */
9let re = {
10 'colorize': 'C',
11 'colorhex': '(?:[0-9a-fA-F]{3}){1,2}',
12 'colorname': '[a-zA-Z]+',
13 'padding': 'P[0-9]{2}',
14 'zoom': 'Z(?:[0-9]+(?:\\.[0-9]+)?|x)',
15 'zoomsym': 'Z[0-9]{2},[0-9]+(?:\\.[0-9]+)?(?:,[0-9]{3}x[0-9]{3})?',
16 'classbase': '-?[_a-zA-Z][_a-zA-Z0-9-]{0,100}',
17 'id': '[a-zA-Z][_a-zA-Z0-9-]{0,100}',
18}
19
20re.colorbase = `(?:${re.colorhex}|${re.colorname})`;
21re.color = `_${re.colorbase}_`;
22re.colors = `_${re.colorbase}(?:,${re.colorbase})?_`;
23re.background = `G${re.color}`;
24re.detail = `D${re.colors}`;
25re.detailsym = `D[0-9]{2}${re.colors}`;
26re.classes = `${re.classbase}(?: ${re.classbase})*`;
27re.full = `-(${re.colorize})?(${re.padding})?(${re.background})?(${re.detail})?(${re.zoom})?(?:-((?:${re.detailsym})*)((?:${re.zoomsym})*))?(?:-(${re.classes})?!(?:(${re.id})!)?)?`;
28
29export { re }