summaryrefslogtreecommitdiffstats
path: root/src/regex.js
blob: 1056554f56d5676a660a09a8a12342a4a13b9a51 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
// Parse unit value
export let numberAndUnit = /^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i

// Parse hex value
export let hex = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i

// Parse rgb value
export let rgb = /rgb\((\d+),(\d+),(\d+)\)/

// Parse reference id
export let reference = /(#[a-z0-9\-_]+)/i

// splits a transformation chain
export let transforms = /\)\s*,?\s*/

// Whitespace
export let whitespace = /\s/g

// Test hex value
export let isHex = /^#[a-f0-9]{3,6}$/i

// Test rgb value
export let isRgb = /^rgb\(/

// Test css declaration
export let isCss = /[^:]+:[^;]+;?/

// Test for blank string
export let isBlank = /^(\s+)?$/

// Test for numeric string
export let isNumber = /^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i

// Test for percent value
export let isPercent = /^-?[\d.]+%$/

// Test for image url
export let isImage = /\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i

// split at whitespace and comma
export let delimiter = /[\s,]+/

// The following regex are used to parse the d attribute of a path

// Matches all hyphens which are not after an exponent
export let hyphen = /([^e])-/gi

// Replaces and tests for all path letters
export let pathLetters = /[MLHVCSQTAZ]/gi

// yes we need this one, too
export let isPathLetter = /[MLHVCSQTAZ]/i

// matches 0.154.23.45
export let numbersWithDots = /((\d?\.\d+(?:e[+-]?\d+)?)((?:\.\d+(?:e[+-]?\d+)?)+))+/gi

// matches .
export let dots = /\./g